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 /srcwget 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
安装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/etccp php-fpm.conf.default php-fpm.conf
修改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
将;pid = run/php-fpm.pid 前面的分号删掉。 注:重启php-fpm 重启命令:kill -USR2 cat var/run/php-fpm.pid
安装Nginx
下载并解压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 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/htmlvi 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 /srcwget http://mirrors.sohu.com/mysql/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.7.tar.gz
先安装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:
安装需要一段时间,可以喝杯茶 初始化数据库,先切换目录到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」:
接下来就是最有标志性的一步,运行MySQL的守护进程:
1 bin/mysqld_safe --user=mysql &
给MySQL数据库里的「root」账号设置密码:
1 ./bin/mysqladmin -u root password '123456'
使用「root」账户进入MySQL管理系统中:
弹出提示时输入密码即可。进入后的界面应该类似这样: 恭喜您,已成功搭建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管理系统中:先退出:
然后以「phpz」账号进入MySQL:
输入密码后即可。在「phpz_db」数据库中创建一张名为「phpz_table」的表,在里面插入一条数据: 使用「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 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