编译安装LNMP
准备工作
安装gcc
yum -y install gcc-c++
1、安装nginx
安装pcre-devel
yum -y install pcre-devel
安装gzip
yum -y install zlib-devel
安装openssl
yum -y install openssl-devel
下载nginx
nginx官方下载地址
http://nginx.org/en/download.html
获取目前最新稳定版
wget http://nginx.org/download/nginx-1.12.1.tar.gz
解压nginx压缩包
tar zxvf nginx-1.12.1.tar.gz
进入目录
cd nginx-1.12.1
进行编译安装
./configure
然后
make&&install
会默认安装到/usr/local/nginx
nginx相关命令
启动nginx/usr/local/nginx/sbin/nginx
查看nginx是否启动
ps -ef|grep nginx
2、安装mariadb
mariadb是MYSQL数据库的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险。mariaDB可以完全兼容MySQL,可以成为mysql的替代品。
安装mariaDB
yum -y install mariadb-server
mariadb相关操作
启动 service mariadb start (systemctl start mariadb)停止 service mysqld stop (systemctl stop mariadb)重启 service mysqld restart (systemctl restart mariadb)设置开机启动 systemctl enable mariadb
mysql -u root 即可进入
默认是没有密码的,给root设置密码,可以立即生效
set password for 'root'@'localhost'=password('mypassword')
3、安装PHP
获取PHP
可自行选择php版本
http://php.net/
这里用的7.1.9
wget -O php-7.1.9.tar.gz http://am1.php.net/get/php-7.1.9.tar.gz/from/this/mirror
解压
tar zxvf php-7.1.9.tar.gz
进入目录
cd php-7.1.9
安装编译时需要的依赖包
yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel libmcrypt-devel libxslt libxslt-devel
安装过程中发现无法安装libmcrypt扩展,可以使用以下方法
1、安装第三方yum源
wget http://www.atomicorp.com/installers/atomicsudo sh ./atomic
2、使用yum命令安装
sudo yum install php-mcryptsudo yum install libmcryptsudo yum install libmcrypt-devel
开始配置
./configure \--prefix=/usr/local/php \--with-config-file-path=/etc \--enable-fpm \--with-fpm-user=www-data \--with-fpm-group=www-data \--enable-inline-optimization \--disable-debug \--disable-rpath \--enable-shared \--enable-soap \--with-libxml-dir \--with-xmlrpc \--with-openssl \--with-mcrypt \--with-mhash \--with-pcre-regex \--with-sqlite3 \--with-zlib \--enable-bcmath \--with-iconv \--with-bz2 \--enable-calendar \--with-curl \--with-cdb \--enable-dom \--enable-exif \--enable-fileinfo \--enable-filter \--with-pcre-dir \--enable-ftp \--with-gd \--with-openssl-dir \--with-jpeg-dir \--with-png-dir \--with-zlib-dir \--with-freetype-dir \--enable-gd-native-ttf \--enable-gd-jis-conv \--with-gettext \--with-gmp \--with-mhash \--enable-json \--enable-mbstring \--enable-mbregex \--enable-mbregex-backtrack \--with-libmbfl \--with-onig \--enable-pdo \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--with-zlib-dir \--with-pdo-sqlite \--with-readline \--enable-session \--enable-shmop \--enable-simplexml \--enable-sockets \--enable-sysvmsg \--enable-sysvsem \--enable-sysvshm \--enable-wddx \--with-libxml-dir \--with-xsl \--enable-zip \--enable-mysqlnd-compression-support \--with-pear \--enable-opcache
编译安装php比较消耗内存,如果服务器内存较小,有可能编译失败,可以考虑设置交换分区
创建swap挂载点
mkdir /opt/images/ rm -rf /opt/images/swap
设置挂载swap的大小,64M*32=2GB
dd if=/dev/zero of=/opt/images/swap bs=64M count=32 mkswap /opt/images/swap
开启swap
swapon /opt/images/swap
然后可以继续下一步操作
(php编译安装后,可以关闭swap并删除挂载文件swapoff /opt/images/swap rm -f /opt/images/swap
)
正式安装,时间会稍微长些
make && make install
配置php环境变量
vim /etc/profile
在末尾加上
PATH=$PATH:/usr/local/php/binexport PATH
保存后使之立即生效
source /etc/profile
查看PHP版本
php -v
配置nginx支持php-fpm
php-fpm相关配置
PHP-FPM是一个PHP FastCGI管理器。PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程、可以平滑重载PHP配置。新版PHP已经集成了PHP-FPM,可以直接使用。
php的默认安装位置在 /usr/local/php
对php-fpm运行用户进行设置
首先创建web用户
用户 组都设置为www-data,可以自己定(实际上在配置时已经设为www-data了)groupadd www-datauseradd -g www-data www-data
复制一份php-fpm配置文件
cd /usr/local/php/etccp php-fpm.conf.default php-fpm.conf打开配置文件vim php-fpm.conf
打开后移到最后会发现会引入php-fpm.d目录下的所有 .conf 类型的配置文件
打开 php-fpm.d目录,复制默认配置文件并打开修改
cd php-fpm.dcp www.conf.default www.confvim www.conf
默认用户组都是www
修改为我们新加的www-data用户
保存退出,重启php-fpm服务
/usr/local/php/sbin/php-fpm
php-fpm默认使用9000端口,使用如下命令可查看是否成功启动
netstat -lnt | grep 9000
nginx相关配置
打开nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
修改用户组
第一行注释去掉 nobody改为www-data添加index.php,使nginx默认使用index.php为入口页
配置php-fpm模块
主要修改69行的/scripts 为 $document_root
以上都修改后保存退出
先检测相关配置是否正确/usr/local/nginx/sbin/nginx -t
显示正确,重启nginx
/usr/local/nginx/sbin/nginx -s reload切到nginx下的html目录(默认代码目录)
新建index.php然后访问对应地址(你的服务器地址)是否可以运行
127.0.0.1/index.php可以直接用curl试下,为了方便查看,这里输出hello,world
curl localhost/hello.php
输出没有问题,php成功运行。