1. 云栖社区>
  2. PHP教程>
  3. 正文

LNMP编译安装

作者:用户 来源:互联网 时间:2017-12-01 14:39:34

安装编译lnmp

LNMP编译安装 - 摘要: 本文讲的是LNMP编译安装, 1. LNMP简介```Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型数据库管理系统。PHP是



1. LNMP简介
```
Linux系统下Nginx+MySQL+PHP这种网站服务器架构。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Mysql是一个小型关系型数据库管理系统。PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
```
2. 环境准备
```bash
#下载所需程序安装包
CentOS-6.8-x86_64 下载地址:https://www.centos.org/
nginx-1.11.2.tar.gz下载地址:http://nginx.org/download/nginx-1.11.2.tar.gz
mysql-5.6.31.tar.gz下载地址:http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.31.tar.gz
php-5.6.23.tar.gz 下载地址:http://php.net/get/php-5.6.22.tar.gz/from/a/mirror#如下
[root[@localhost](http://my.oschina.net/u/570656) src]# ls /usr/local/src/
nginx-1.11.2.tar.gz mysql-5.6.31.tar.gzphp-5.6.23.tar.gz
#安装epel扩展源
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
#使用yum安装依赖库
yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libpng libpng-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses curl openssl-devel gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel readline-devel libxslt-devel expat-devel xmlrpc-c xmlrpc-c-devel pcre pcre-devel cmake mcrypt php-mcrypt libmcrypt libmcrypt-devel
```
3. 编译安装MySQL
```bash
#创建MySQL运行用户
useradd -M -s /sbin/nologin mysql
#创建MySQL数据目录并配置权限
chown -R mysql:mysql /data/mysql/
chmod -R 755 /data/mysql/
#编译安装MySQL
[root[@localhost](http://my.oschina.net/u/570656) src]# cd /usr/local/src/
[root[@localhost](http://my.oschina.net/u/570656) src]# tar -xvzf mysql-5.6.31.tar.gz
[root[@localhost](http://my.oschina.net/u/570656) src]# cd /usr/local/src/mysql-5.6.31
[root[@host1](http://my.oschina.net/host1) mysql-5.6.31]# cmake /
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql /
-DMYSQL_DATADIR=/data/mysql /
-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock /
-DMYSQL_USER=mysql /
-DMYSQL_TCP_PORT=3306 /
-DSYSCONFDIR=/etc /
-DWITH_MYISAM_STORAGE_ENGINE=1 /
-DWITH_INNOBASE_STORAGE_ENGINE=1 /
-DWITH_PARTITION_STORAGE_ENGINE=1 /
-DWITH_MENORY_STORAGE_ENGINE=1 /
-DWITH_SSL=system /
-DWITH_ZLIB=system /
-DWITH_DEBUG=0 /
-DWITH_EMBEDDED_SERVER=1 /
-DENABLED_LOCAL_INFILE=1 /
-DEXTRA_CHARSETS=all /
-DDEFAULT_CHARSET=utf8 /
-DDEFAULT_COLLATION=utf8_general_ci
[root@host1 mysql-5.6.31]# make && make install
#初始化mysql
[root@localhost mysql]# cd /usr/local/mysql/
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql/
#拷贝mysql启动脚本并修改
[root@localhost mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@localhost ~]# ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
[root@localhost mysql]# vim /etc/init.d/mysqld
修改如下两行为相应路径
basedir=/usr/local/mysql/
datadir=/data/mysql/
#拷贝配置文件并修改
[root@localhost mysql]# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
#主要修改如下部分
[mysqld]
basedir = /usr/local/mysql/
datadir = /data/mysql/
port = 3306
server_id = 1
socket = /data/mysql/mysql.sock
#启动mysql并测试
[root@localhost ~]# /usr/local/mysql/bin/mysqld_safe &
[root@localhost mysql]# netstat -pantu | grep mysql
tcp 0 0 :::3306 :::* LISTEN 47033/mysqld
#存在mysql监听3306端口则表示mysql安装正常
```
4. 编译安装PHP
```bash
#添加php-fpm的执行用户
useradd -M -s /sbin/nologin php-fpm
#编译安装PHP
cd /usr/local/src/
tar -xvzf php-5.6.22.tar.gz
cd php-5.6.22
[root@host1 php-5.6.23]# ./configure /
--prefix=/usr/local/php /
--with-config-file-path=/usr/local/php/etc /
--with-mysqli=/usr/local/mysql/bin/mysql_config /
--with-libxml-dir /
--with-gd /
--with-curl /
--with-pcre-regex /
--with-sqlite3 /
--with-zlib /
--with-jpeg-dir /
--with-png-dir /
--with-freetype-dir /
--with-iconv-dir /
--with-zlib-dir /
--with-bz2 /
--with-openssl /
--with-mcrypt /
--enable-fpm /
--with-fpm-user=php-fpm /
--with-fpm-group=php-fpm /
--with-mysql=/usr/local/mysql /
--with-mysql-sock=/data/mysql/mysql.sock /
--enable-sysvsem /
--enable-sockets /
--enable-pcntl /
--enable-bcmath /
--enable-mbstring /
--enable-mysqlnd /
--enable-opcache /
--enable-shmop /
--enable-json /
--enable-exif /
--enable-zip /
--enable-ftp /
--enable-gd-native-ttf /
--enable-wddx /
--enable-soap /
--disable-ipv6
[root@host1 php-5.6.23]# make && make install
#拷贝php配置文件php.ini
cp /usr/local/src/php-5.6.23/php.ini-production /usr/local/php/etc/php.ini
#拷贝php启动脚本php-fpm
cp /usr/local/src/php-5.6.23/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
#拷贝php配置文件
mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
#启动php-fpm服务
service php-fpm start#查看php-fpm的进程和占用端口
[root@host1 php]# netstat -pantu|grep php-fpm
tcp 00 127.0.0.1:90000.0.0.0:* LISTEN56407/php-fpm
[root@host1 php]# ps aux|grep php-fpm|grep -v grep
root564070.00.2 2162845056 ? Ss 19:39 0:00 php-fpm: master process (/usr/local/php/etc/php-fpm.conf)
php-fpm 564080.00.2 2162844724 ? S19:39 0:00 php-fpm: pool www
php-fpm 564090.00.2 2162844724 ? S19:39 0:00 php-fpm: pool www
```
5. 编译安装nginx
```bash
#编译安装nginx
cd /usr/local/src/
tar -xvzf nginx-1.11.2.tar.gz
cd /usr/local/src/nginx-1.11.2
[root@host1 nginx-1.11.2]# ./configure --prefix=/usr/local/nginx/ --with-pcre
[root@host1 nginx-1.11.2]# make && make install
#创建主程序软连接
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx#配置NGINX解析php
[root@host1 nginx]# vim /usr/local/nginx/conf/nginx.conf
#配置如下内容,其中fastcgi_param路径要与web路径保持一致
location ~ /.php$ {
roothtml;
fastcgi_pass 127.0.0.1:9000;
fastcgi_indexindex.php;
fastcgi_paramSCRIPT_FILENAME/usr/local/nginx/html$fastcgi_script_name;
include fastcgi_params;
}#nginx配置文件语法检查
[root@CentOS6 html]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx//conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx//conf/nginx.conf test is successfu
#启动nginx
[root@host1 nginx]# /usr/local/nginx/sbin/nginx
#编写nginx启动脚本
[root@host1 nginx]# vim /etc/init.d/nginx
RETVAL=0
prog="Nginx"
start() {
echo -n $"Starting $prog: "
mkdir -p /dev/shm/nginx_temp
daemon $NGINX_SBIN -c $NGINX_CONF
RETVAL=$?
echo
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -TERM
rm -rf /dev/shm/nginx_temp
RETVAL=$?
echo
return $RETVAL
}
reload(){
echo -n $"Reloading $prog: "
killproc -p $NGINX_PID $NGINX_SBIN -HUP
RETVAL=$?
echo
return $RETVAL
}
restart(){
stop
start
}
configtest(){
$NGINX_SBIN -c $NGINX_CONF -t
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
restart
;;
configtest)
configtest
;;
*)
echo $"Usage: $0 {start|stop|reload|restart|configtest}"
RETVAL=1
esac
exit $RETVAL
[root@host1 nginx]# chmod +x /etc/init.d/nginx
```



以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索安装 , 编译 lnmp ,以便于您获取更多的相关知识。

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

现在注册,免费体验40+云产品,及域名优惠!

云服务器9.9元/月,大学必备