最新版请看: 如何搭建LNMP环境【编译版】
centos-7.2 nginx-1.10.1 php-7.0.12 mysql-5.7.16php
注意:MySQL5.7的安装须要1G的内存!!!不然会安装失败。
首先卸载系统预安装的LAMP软件html
rpm -qa|grep httpd rpm -e httpd httpd-tools rpm -qa|grep mysql rpm -e mysql mysql-libs rpm -qa|grep php rpm -e php-mysql php-cli php-gd php-common php yum -y remove httpd* yum -y remove mysql-server mysql mysql-libs yum -y remove php*
添加用户(添加用户和用户组 www 和 mysql,而且禁止登陆)。
www用户主要是用来赋予nginx和php执行权限,mysql主要是赋予给mysql权限,禁止登陆是为了防止用户有权限去操做www和mysql,一切为了安全:mysql
groupadd www useradd -s /sbin/nologin -g www www groupadd mysql useradd -s /sbin/nologin -g mysql mysql
添加预安装包nginx
yum -y install wget gcc gcc-c++ libxml2 libxml2-devel pcre pcre-devel openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libicu libicu-devel libxslt libxslt-devel autoconf cmake ncurses ncurses-devel libxslt libxslt-devel
我通常都会将安装包放到/usr/local/src目录中,因此先执行下面的命令c++
cd /usr/local/src
首先安装libmcrypt包。sql
yum install -y epel-release yum clean all yum makecache yum install -y libmcrypt libmcrypt-devel
安装 nginxshell
cd /usr/local/src wget -c http://nginx.org/download/nginx-1.10.1.tar.gz tar zxvf nginx-1.10.1.tar.gz cd nginx-1.10.1 ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module make && make install
启动nginx的命令是:数据库
/usr/local/nginx/sbin/nginx
./configure 参数解释:vim
--prefix=/usr/local/nginx #nginx的安装路径 --user=www #设置nginx工做进程的用户 --group=www #设置nginx工做进程的用户组 --with-http_ssl_module #使用https协议 --with-http_stub_status_module #提供查看服务器统计信息的能力 --with-http_v2_module #提供HTTP/2服务。从nginx1.9.5开始,http_v2_module 已经替换了http_spdy_module。因此安装以前的版本将该参数替换为--with-http_spdy_module(启动SPDY支持,SPDY能够缩短网页的加载时间,可是必须使用ssl传输协议) --with-http_gzip_static_module #启用预压缩(gzip)的支持 --with-ipv6 #支持ipv6访问 --with-http_sub_module #启用过滤器支持
安装phpcentos
cd /usr/local/src wget -c http://cn2.php.net/distributions/php-7.0.12.tar.gz tar zxf php-7.0.12.tar.gz cd php-7.0.12 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --enable-pcntl --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --with-xsl make && make install
这样php就安装完成了。而后接下来建立软链接:
ln -sf /usr/local/php/bin/php /usr/local/bin/php
复制php.ini配置文件
cp /usr/local/src/php-7.0.12/php.ini-production /usr/local/php/etc/php.ini
这时候php就已经安装完成了。接下来就是启用php-fpm服务了。
首先生成配置文件
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf mv /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
启动php-fpm的准备工做
cp /usr/local/src/php-7.0.12/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm chkconfig php-fpm on
这个时候,使用以下命令就能够启动php-fpm了
service php-fpm start
启动起来以后,编辑nginx配置文件,实现nginx的代理访问,找到以下代码:
vim /usr/local/nginx/conf/nginx.conf
#location ~ \.php$ { # root html; # fastcgi_pass 127.0.0.1:9000; # fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME /script$fastcgi_script_name; # include fastcgi_params; #}
把前面的#注释符号去掉,把script改为$document_root,第二行 html 改为你的项目路径,这里我设置的/home/www/default
,你也能够设置本身喜欢的目录 最终代码以下:
location ~ \.php$ { root /home/www/default; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /$document_root$fastcgi_script_name; include fastcgi_params; }
修改完成以后,先执行nginx配置检测命令,若是没有错误就执行从新加载配置文件的命令:
/usr/local/nginx/sbin/nginx -t #配置检测命令 /usr/local/nginx/sbin/nginx -s reload #动态加载配置命令
咱们去/home/www/default
目录下建立一个php文件。浏览一下是否正常:
<?php phpinfo(); ?>
记得对/home/www/default
进行赋权:
chown www.www /home/www/default -R
若是能正确的显示php的当前信息,就说明咱们工做已经完成了一大半了。下面接下来安装mysql:
mysql5.7.5以后版本都要安装boost包。因此我选择是下载已经自带boost安装包的mysql安装包:
cd /usr/local/src wget -c http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.16.tar.gz tar zxvf mysql-boost-5.7.16.tar.gz cd mysql-5.7.16/ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_BOOST=boost -DENABLE_DOWNLOADS=1 make && make install chown -R mysql:mysql /usr/local/mysql #对mysql目录进行赋予权限
mysql configure 安装参数解释:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql #指定安装路径 -DDEFAULT_CHARSET=utf8mb4 #默认使用utf8mb4字符 -DDEFAULT_COLLATION=utf8mb4_general_ci #校验字符 -DWITH_INNOBASE_STORAGE_ENGINE=1 #安装innodb引擎 -DWITH_BOOST=boost #指定boost的安装位置 -DENABLE_DOWNLOADS #是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试。
生成mysql配置文件
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
对数据库进行初始化,这个时候初始化的时候,屏幕上会出现初始化的密码,记下来,若是错过了,能够经过查看/root/.mysql_secret
来查看以前的初始化密码:
/usr/local/mysql/bin/mysqld --initialize --user=mysql
复制文件mysql.server 可使用service 命令进行控制
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql service mysql start #启动mysql
登陆数据库修改密码
/usr/local/mysql/bin/mysql -u root -p
输入密码回车。登陆成功后,输入如下字符,来修改密码,好比我要修改密码为root
:
set password = password('root');
写一个php程序,来测试mysql是否可否正常连上MySQL:
<?php $pdo = new PDO("mysql:host=127.0.0.1;dbname=sys;port=3306", 'root', 'root', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'set names utf8mb4', PDO::ATTR_TIMEOUT => 1)); var_dump($pdo); ?>