LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。
(1) Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、gentoo等。
(2)Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少
(3)Mysql是一个小型关系型数据库管理系统。
(4)PHP是一种在服务器端执行的嵌入HTML文档的脚本语言。
这四种软件均为免费开源软件,组合到一起,成为一个免费、高效、扩展性强的网站服务系统。
tar zxf mysql-boost-5.7.17.tar.gz
cd mysql-5.7.17/
yum install -y cmake-2.8.12.2-4.el6.x86_64.rpm
yum install -y gcc gcc-c++ ncurses-devel bison openssl-devel zlib-devel
[root@server1 ~]# cd mysql-5.7.17/
[root@server1 mysql-5.7.17]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/lnmp/mysql -DMYSQL_DATADIR=/usr/local/lnmp/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/lnmp/mysql/data/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_BOOST=boost/boost_1_59_0
[root@server1 mysql-5.7.17]# make && make install
[root@server1 ~]# cd /usr/local/lnmp/mysql/support-files/
[root@server1 support-files]# cp mysql.server /etc/init.d/mysqld
[root@server1 support-files]# groupadd -g 27 mysql
[root@server1 support-files]# useradd -g 27 -u 27 -M -d /usr/local/lnmp/mysql/ -s /sbin/nologin mysql #指定mysql用户的家目录为usr/local/lnmp/mysql/
[root@server1 mysql]# chown -R mysql.mysql .
[root@server1 ~]# cd /usr/local/lnmp/mysql/bin/
[root@server1 bin]# vim ~/.bash_profile
[root@server1 bin]# source ~/.bash_profile
[root@server1 bin]# mysqld --initialize --user=mysql #生成的初始密码在图片的红框中
[root@server1 bin]# /etc/init.d/mysqld start
[root@server1 data]# mysql_secure_installation
Mysql数据库源码编译就完成了
[root@server1 ~]#wget http://cn2.php.net/distributions/php-5.6.31.tar.gz
[root@server1 ~]# ls
php-5.6.31.tar.gz
[root@server1 ~]# tar zxf php-5.6.31.tar.gz
[root@server1 ~]# ls
php-5.6.31.tar.gz php-5.6.31
[root@server1 ~]# cd php-5.6.31
首先解决依赖性,安装依赖包
[root@server1~]#yum install libxml2-devel openssl-devel -y gd-devel-2.0.35-11.el6.x86_64.rpm curl-devel gmp-devel
[root@server1~]# yum install -y libmcrypt-2.5.8-9.el6.x86_64.rpm libmcrypt-devel-2.5.8-9.el6.x86_64.rpm gd-devel-2.0.35-11.el6.x86_64.rpm re2c-0.13.5-1.el6.x86_64.rpm
预编译
[root@server1 ~]# ./configure --prefix=/usr/local/lnmp/php --with-config-file-path=/usr/local/lnmp/php/etc --with-mysql=mysqlnd --with-openssl --with-snmp --with-gd --with-zlib --with-curl --with-libxml-dir --with-png-dir --with-jpeg-dir --with-freetype-dir --with-pear --with-gmp --enable-inline-optimization --enable-soap --enable-ftp --enable-sockets --enable-mbstring --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --with-mcrypt --with-mhash
[root@server1 ~]# make && make install
[root@server1 ~]# cd /usr/local/lnmp/php/etc/
[root@server1 etc]# cp php-fpm.conf.default php-fpm.conf
[root@server1~]# cp php-5.6.31/php.ini-production /usr/local/lnmp/php/etc/php.ini
[root@server1 ~]# cd /usr/local/lnmp/php/etc/
[root@server1 etc]# vim php-fpm.conf
[root@server1 etc]# vim php.ini
建立nginx用户
[root@server1 etc]# useradd -M -d /usr/local/lnmp/nginx/ -u 800 nginx
[root@server1 ~]# cp -p php-5.6.31/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm #init.d.php-fpm是编译完成的启动脚本
[root@server1 ~]# chmod +x /etc/init.d/php-fpm #给脚本加上可执行权限
[root@server1 ~]# /etc/init.d/php-fpm start #打开php服务
[root@server1 ~]# netstat -antlp |grep 9000 #查看php服务
[root@server1 ~]# tar zxf nginx-1.14.0.tar.gz
[root@server1 ~]# yum install -y unzip
[root@server1 ~]#unzip nginx-goodies-nginx-sticky-module-ng-08a395c66e42.zip
[root@server1 ~]# vim nginx-1.14.0/auto/cc/gcc
[root@server1 ~]# vim nginx-1.14.0/src/core/nginx.h
[root@server1 nginx-1.14.0]# yum install -y pcre-devel
[root@server1 nginx-1.14.0]# ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx --with-threads --with-file-aio
其中:
./configure --prefix=/usr/local/lnmp/nginx # nginx的安装路径
--with-http_ssl_module # 支持https
--with-http_stub_status_module
--with-threads # 支持线程并发
--user=nginx
--group=nginx # 运行在nginx用户和nginx组
--with-file-aio
[root@server1 nginx-1.14.0]# make && make install
添加nginx用户
[root@server1 conf]# useradd -M -d /usr/local/lnmp/nginx/ -u 800 nginx
修改文件
[root@server1 nginx-1.14.0]# cd /usr/local/lnmp/nginx/conf/
[root@server1 conf]# vim nginx.conf
2 user nginx;
3 worker_processes auto;
12 events {
13 worker_connections 65535;
14 }
43 location / {
44 root html;
45 index index.php index.html index.htm;
46 }
65 location ~ \.php$ {
66 root html;
67 fastcgi_pass 127.0.0.1:9000;
68 fastcgi_index index.php;
69 # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
70 include fastcgi.conf;
71 }
修改nginx缓存最大文件数
[root@server1 conf]# vim /etc/security/limits.conf
[root@server1 conf]# tail -n 1 /etc/security/limits.conf
nginx - nofile 65535
[root@server1 conf]# vim ~/.bash_profile
[root@server1 conf]# source ~/.bash_profile
[root@server1 conf]# nginx -t #检测配置文件是否有错
[root@server1 conf]# nginx #打开nginx服务
[root@server1 conf]# cd /usr/local/lnmp/nginx/html/
[root@server1 html]# vim index.php
[root@server1 ~]# cd /usr/local/lamp/nginx/conf
[root@server1 conf]# vim nginx.conf
45 index index.php index.html index.htm;
[root@server1 conf]# nginx -s reload
[root@server1 ~]# yum install unzip -y
[root@server1 ~]# unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/lnmp/nginx/html/
[root@server1 ~]# cd /usr/local/lnmp/nginx/html/
[root@server1 html]# mv upload/ bbs ##改名为bbs
[root@server1 html]# cd bbs/
[root@server1 bbs]# chmod 777 config/ data/ uc_server/ uc_client/ -R
root@server1 ~]# cd /usr/local/lnmp/php/etc/
[root@server1 etc]# vim php.ini
1013 pdo_mysql.default_socket=/usr/local/lnmp/mysql/data/mysql.sock
1157 mysql.default_port =/usr/local/lnmp/mysql/data/mysql.sock
1221 mysqli.default_socket =/usr/local/lnmp/mysql/data/mysql.sock
[root@server1 etc]# /etc/init.d/php-fpm reload
Reload service php-fpm done
修改访问权限
[root@server1 mysql]# pwd
/usr/local/lnmp/mysql
[root@server1 mysql]# chmod 755 data/
解决在论坛安装过程中第三步安装数据库过程中(No such file or directoey)
执行下面的命令:
[root@server1 etc]# chmod 755 /usr/local/lnmp/mysql/data/
测试:在浏览器中访问172.25.66.1/bbs(第一步:我同意—>第二步:修改权限后x会编程对勾,下一步—>第三步:安装数据库<输入数据库的密码,管理员登录密码>第四步:开始使用)