CnSwift - 雨燕

agile development - 敏捷开发

Lnmp环境搭建

Lnmp环境搭建

检查并安装组件

1
yum -y install gcc automake autoconf libtool make gcc-c++ glibc

安装库

1
2
3
4
5
yum -y install libxslt-devel \
libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \
zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \
ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \
krb5-devel libidn libidn-devel openssl openssl-devel

安装libmcrypt

1
2
3
4
5
6
cd /usr/local/src
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
tar zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure --prefix=/usr/local/libmcrypt
make && make install
1
2
3
vi /etc/ld.so.conf.d/local.conf
#添加
/usr/local/libmcrypt/lib
1
ldconfig -v

安装PHP

1
2
3
4
5
6
7
8
9
10
wget http://cn2.php.net/get/php-5.6.14.tar.gz/from/this/mirror
tar zxvf php-5.6.14.tar.gz
cd php-5.6.14
./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt=/usr/local/libmcrypt \
--enable-mbstring --with-curl --disable-debug --disable-rpath \
--enable-inline-optimization --with-bz2 --with-zlib --enable-sockets \
--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \
--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli --with-pdo-mysql \
--with-gd --with-jpeg-dir --with-freetype-dir --with-openssl
make && make install


安装成功:

配置php-fpm

1
2
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf

修改php-fpm.conf

1
vi php-fpm.conf

1
2
3
4
5
6
7
#将
user = nobody
group = nobody

#修改为
user = phpz
group = phpz

创建用户phpz和用户组phpz

1
2
groupadd phpz
useradd -g phpz phpz

创建php.ini

1
cp /usr/local/src/php-5.6.14/php.ini-production /usr/local/php/lib/php.ini

设置php-fpm.pid

1
vi php-fpm.conf


将;pid = run/php-fpm.pid 前面的分号删掉。
注:重启php-fpm 重启命令:kill -USR2 cat var/run/php-fpm.pid

安装Nginx

1
cd /usr/local/src

下载并解压pcre-8.37.tar.gz:

1
2
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz 
tar zxvf pcre-8.37.tar.gz

下载并解压zlib-1.2.8.tar.gz:

1
2
wget http://zlib.net/zlib-1.2.8.tar.gz
tar zxvf zlib-1.2.8.tar.gz

下载并解压openssl-1.0.2d.tar.gz:

1
2
wget http://www.openssl.org/source/openssl-1.0.2d.tar.gz
tar zxvf openssl-1.0.2d.tar.gz

下载并解压nginx-1.8.0.tar.gz:

1
2
wget http://nginx.org/download/nginx-1.8.0.tar.gz
tar zxvf nginx-1.8.0.tar.gz

安装Nginx

1
2
3
4
5
6
7
8
vi /usr/bin/pod2man #注释第69行
cd /usr/local/src/nginx-1.8.0
./configure --prefix=/usr/local/nginx \
--with-http_ssl_module \
--with-pcre=/usr/local/src/pcre-8.37 \
--with-zlib=/usr/local/src/zlib-1.2.8 \
--with-openssl=/usr/local/src/openssl-1.0.2d
make && make install

启动nginx

1
2
cd /usr/local/nginx
./sbin/nginx

浏览器访问:http://localhost

配置nginx.conf ,让Nginx通过PHP的FastCGI处理请求,首先到nginx的安装目录cd /usr/local/nginx,修改vi conf/nginx.conf 文件,找到如下内容:

取消注释,再将/scripts$fastcgi_script_name 修改为

$document_root$fastcgi_script_name

新建一个php文件

1
2
cd /usr/local/nginx/html
vi index.php
1
2
3
<?php
echo phpinfo();
?>

启动php-fpm ,重启nginx

1
2
/usr/local/php/sbin/php-fpm
/usr/local/nginx/sbin/nginx -s reload

浏览器访问http://127.0.0.1/index.php

安装MySQL

下载:

1
2
cd /usr/local/src
wget http://mirrors.sohu.com/mysql/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.7.tar.gz

先安装cmake:

1
yum -y install cmake

添加名为「mysql」的用户和组:

1
2
groupadd mysql
useradd -r -g mysql mysql

解压mysql-cluster-gpl-7.4.7.tar.gz:

1
tar zxvf mysql-cluster-gpl-7.4.7.tar.gz

cmake命令如下:

1
2
3
4
5
6
7
8
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/run/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_SSL=yes

安装MySQL:

1
make && make install

安装需要一段时间,可以喝杯茶
初始化数据库,先切换目录到MySQL的安装目录:

1
cd /usr/local/mysql/

然后改变安装目录下所有文件的用户及组为mysql

1
2
chown -R mysql .
chgrp -R mysql .

初始化数据库:

1
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql

然后将目录的所有文件的所属用户改为「root」,接着将目录「data」的所属用户改为「mysql」(这一步很重要,否则数据库可能无法对这个目录进行操作):

1
2
3
4
chown -R root .
chown -R mysql data
chown -R mysql data/mysql
chown -R mysql.mysql /usr/local/mysql/data

将MySQL的配置文件拷贝到配置文件目录「/etc/」下,询问是否覆盖源文件输入「yes」即可:

1
cp support-files/my-medium.cnf /etc/my.cnf

要对MySQL进行设置
我自己设置为安装目录下的「run/」文件夹,因此要把这个文件夹的所属用户设置为「mysql」:

1
chown -R mysql ./run

接下来就是最有标志性的一步,运行MySQL的守护进程:

1
bin/mysqld_safe --user=mysql &

给MySQL数据库里的「root」账号设置密码:

1
./bin/mysqladmin -u root password '123456'

使用「root」账户进入MySQL管理系统中:

1
./bin/mysql -u root -p

弹出提示时输入密码即可。进入后的界面应该类似这样:

恭喜您,已成功搭建Lnmp环境。
以下内容可忽略。
在MySQL内创建一个叫做「phpz」的账号,为它设置密码:在mysql中输入以下语句:

1
CREATE USER 'phpz'@'localhost' IDENTIFIED BY '123456';

在MySQL内建立一个名为「phpz_db」的数据库,然后让「phpz」账号拥有对「phpz_db」数据库的完全操作权限:
首先是创建数据库「phpz_db」:

1
CREATE DATABASE phpz_db;

然后是让「phpz」账号拥有对「phpz_db」数据库的完全操作权限:

1
GRANT ALL ON phpz_db.* TO 'phpz'@'localhost';

上面的「ALL」即所有权限,「phpz_db.*」即权限是针对phpz_db下的所有表,「‘phpz’@‘localhost’」即来自localhost的名为「phpz」的用户。
退出MySQL管理系统,使用「phpz」账户进入MySQL管理系统中:先退出:

1
exit;

然后以「phpz」账号进入MySQL:

1
./bin/mysql -u phpz -p

输入密码后即可。在「phpz_db」数据库中创建一张名为「phpz_table」的表,在里面插入一条数据:
使用「phpz_db」数据库:

1
USE phpz_db;

建一张名为「phpz_table」的表(下面普通的换行不会执行语句,MySQL在换行时检测到分号「;」才会执行语句):

1
2
3
4
CREATE TABLE `phpz_table`(
`id` INT(10) PRIMARY KEY NOT NULL AUTO_INCREMENT,
`content` VARCHAR(256)
);

注意!上面对于表名如「phpz_table」,列名如「id」和「content」,它们使用的引号是反引号「`」,不是单引号。
这样一张表就建立好了,通过命令「SHOW TABLES」就可以看到。
然后就是往里面插入一条数据:

1
INSERT INTO `phpz_table` (`id`, `content`) VALUES(1, 'Hello World! Hello PHP-Z!');

出现 「Query OK, 1 row affected」就证明成功了!

编写一个PHP文件

通过浏览器的访问将上一步中插入的数据显示在网页上:

切换到Nginx安装目录下的「html」文件夹:

1
cd /usr/local/nginx/html/

新建一个名为「lnmp.php」的文件,内容如下:

1
vi lnmp.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$mysqli = new mysqli('localhost:3306', 'phpz', '123456', 'phpz_db');
//检查连接是否出错
if ($mysqli -> connect_errno()) {
die("Connect Error:".$mysqli -> connect_error());
}
//执行读取数据的语句
$sql = 'SELECT `id`, `content` FROM `phpz_table` WHERE `id`=1;';
$result = $mysqli -> query($sql);
$row = $mysqli -> fetch_array($result, MYSQLI_ASSOC);
//输出结果
echo $row['content'];
//关闭连接
$mysqli -> close();
?>

注意上面在初始化连接时的端口号「3306」必须写。保存后将这个文件的权限设置为755,即执行命令:chmod 755 lnmp.php
打开浏览器,访问一下「http://127.0.0.1/lnmp.php」。

总结:

  • Linux:CentOS-7-x86_64-DVD-1503-01.iso
  • PHP:php-5.6.14.tar.gz
  • Nginx:nginx-1.8.0
  • MySQL:mysql-cluster-gpl-7.4.7.tar.gz
更多精彩内容,请关注公众号 Golang语言开发栈公众号二维码
感谢赞赏.

Welcome to my other publishing channels