最近帮客户写一个文档,客户要求照着文档敲能够完成整个lnmp部署,特记录下来!
构建Nginx+MySQL+PHP平台
(1)安装lnmp所需依赖库
#yum -y install gcc automake autoconf libtool make gcc-c++ glibc 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 pcre pcre-devel libmcrypt libmcrypt-devel cmake gmp-devel readline-devel
创建www所属组及用户
/usr/sbin/groupadd www
/usr/sbin/useradd -g www www
设置系统资源限制
ulimit -SHn 65535
(2)安装配置Nginx
Nginx 源码安装
#cd /opt/ wget http://nginx.org/download/nginx-1.12.2.tar.gz #tar -xvf nginx-1.12.2.tar.gz #cd nginx-1.12.2 #./configure --prefix=/usr/local/nginx --sbin-path=/usr/sbin/nginx --user=www --group=www --with-http_ssl_module --with-http_gzip_static_module --with-http_stub_status_module #make && make install
nginx //启动
nginx -s stop// 停止
nginx -s reload // 重新加载
为方便管理设置启动脚本,配置开机启动
vi /etc/init.d/nginx
#! /bin/bash # chkconfig: 35 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse set -e PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin DESC="nginx daemon" NAME=nginx DAEMON=/usr/sbin/$NAME SCRIPTNAME=/etc/init.d/$NAME test -x $DAEMON || exit 0 d_start(){ $DAEMON || echo -n " already running" } d_stop() { $DAEMON -s quit || echo -n " not running" } d_reload() { $DAEMON -s reload || echo -n " counld not reload" } case "$1" in start) echo -n "Starting $DESC:$NAME" d_start echo "." ;; stop) echo -n "Stopping $DESC:$NAME" d_stop echo "." ;; reload) echo -n "Reloading $DESC configuration..." d_reload echo "reloaded." ;; restart) echo -n "Restarting $DESC: $NAME" d_stop sleep 2 d_start echo "." ;; *) echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2 exit 3 ;; esac exit 0
#chmod +x /etc/rc.d/init.d/nginx (设置可执行权限)
#chkconfig --add nginx (添加系统服务)
#service nginx start
#service nginx stop
#service nginx restart
#service nginx reload
浏览器访问:http://47.98.97.98/如能出现nginx页面则表示成功
常用查询
查看nginx进程
ps -ef | grep nginx
查看进程个数 去掉首位的
ps -ef | grep nginx | wc -l
查看80端口
netstat -tlupn|grep nginx
(3)安装配置php
#cd /opt/ #wget http://am1.php.net/distributions/php-7.1.1.tar.gz #tar zvxf php-7.1.1.tar.gz #export LD_LIBRARY_PATH=/lib/:/usr/lib/:/usr/local/lib #cd php-7.1.1 ./configure \ --prefix=/usr/local/php \ --with-config-file-path=/etc \ --enable-fpm \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --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
cp php.ini-development /usr/local/php/lib/php.ini
另外还需要设置环境变量 :
修改/etc/profile文件使其永久性生效,并对所有系统用户生效,在文件末尾加上如下两行代码
PATH=$PATH:/usr/local/php/bin
export PATH
然后执行 命令 source /etc/profile
php -v 就可以看到PHP版本信息了。
此时还需要配置PHP-fpm:
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
cp /opt/php-7.1.1/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
启动php-fpm:
/etc/init.d/php-fpm start
如果出现错误:ERROR: [pool www] cannot get uid for user 'nginx'
则新建www-data 用户组:
useradd nginx
然后再启动php-fpm
php-fpm参数:
--start 启动
--stop 强制终止
--quit 平滑终止
--restart 重启
--reload 重新平滑加载php的php.ini
--logrotate 重新启用log文件
查看php版本
#php -v
(4)配置nginx支持php解析
在nginx的配置文件中添加
vi /usr/local/nginx/conf/nginx.conf
location ~ \.php$ { root /usr/local/nginx/html/; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /usr/local/nginx/conf/fastcgi_params; }
注释:/usr/local/nginx/html/ nginx的web目录
/usr/local/nginx/conf/fastcgi_params fastcgi处理文件
重启nginx
service nginx restart
启动php解析管理器fastcgi
service php-fpm start
编写测试页面
<?php
phpinfo();
?>
测试:
http://47.98.97.98/index.php
(5)nginx配置虚拟主机(参考)
web.test.com
server { listen 80; server_name web.test.com; location ~ \.php$ { root /usr/local/nginx/html/web.test.com; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include /usr/local/nginx/conf/fastcgi_params } location / { root /usr/local/nginx/html/web.test.com; index index.php; } }
(6)MySQL5.6安装配置
#cd /opt #yum -y install libaio libaio-devel #wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz #groupadd mysql #useradd -r -g mysql -s /bin/false mysql #tar -xvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz # cd mysql-5.6.35-linux-glibc2.5-x86_64 #mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql #chown -R mysql:mysql /usr/local/mysql #rm -rf /etc/my.cnf #cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 修改文件为 [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data pid-file=/usr/local/mysql/mysql.pid log-error=/usr/local/mysql/data/mysql.err max_connections=200 default-storage-engine=INNODB lower_case_table_names=1 max_allowed_packet=20M 初始化数据库 #cd /usr/local/mysql/scripts # ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data # cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld 启动数据库 # service mysqld start 添加环境变量 #echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile #source /etc/profile #原数据库面位为空 修改数据库密码为admin123@ mysqladmin -uroot password admin123@
(7)Redis安装配置
#cd /opt/
#wget
http://download.redis.io/releases/redis-4.0.9.tar.gz#tar -xvf redis-4.0.9.tar.gz
#cd redis-4.0.9
#make
#make install
#cp redis.conf /etc/
配置文件修改
vi /etc/redis.conf
Daemonize yes
pidfile /var/run/redis.pid
编写启动脚本
vi /etc/init.d/redis
#!/bin/sh # # redis - this script starts and stops the redis-server daemon # # chkconfig: - 85 15 # description: Redis is a persistent key-value database # processname: redis-server # config: /etc/redis.conf # config: /etc/sysconfig/redis # pidfile: /var/run/redis.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 redis="/usr/local/bin/redis-server" prog=$(basename $redis) REDIS_CONF_FILE="/etc/redis.conf" [ -f /etc/sysconfig/redis ] && . /etc/sysconfig/redis lockfile=/var/lock/subsys/redis start() { [ -x $redis ] || exit 5 [ -f $REDIS_CONF_FILE ] || exit 6 echo -n $"Starting $prog: " daemon $redis $REDIS_CONF_FILE retval=$? echo [ $retval -eq 0 ] && touch $lockfile return $retval } stop() { echo -n $"Stopping $prog: " killproc $prog -QUIT retval=$? echo [ $retval -eq 0 ] && rm -f $lockfile return $retval } restart() { stop start } reload() { echo -n $"Reloading $prog: " killproc $redis -HUP RETVAL=$? echo } force_reload() { restart } rh_status() { status $prog } rh_status_q() { rh_status >/dev/null 2>&1 } case "$1" in start) rh_status_q && exit 0 $1 ;; stop) rh_status_q || exit 0 $1 ;; restart|configtest) $1 ;; reload) rh_status_q || exit 7 $1 ;; force-reload) force_reload ;; status) rh_status ;; condrestart|try-restart) rh_status_q || exit 0 ;; *) echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" exit 2 esac
配置开机启动脚本
#chmod +x /etc/init.d/redis
#chkconfig --add redis
#chkconfig --level 35 redis on
#启动服务
service redis restart
测试
(8)Memcached安装配置
#yum install gcc libevent libevent-devel #wget #tar -xvf memcached-1.5.7.tar.gz #cd memcached-1.5.7 #/configure --prefix=/usr/local/memcached && make && sudo make install 启动服务 /usr/local/memcached/bin/memcached -d -u root -l 172.16.177.69 -p 11211 -m 10 -c 1000 -P /tmp/memcached.pid
启动参数详解
#选项说明,这里只列出比较重要的选项,具体选项说明使用memcached -h来查阅
-p TCP端口,默认为11211,可以不设置
-U UDP端口,默认为11211,0为关闭
-l 监听的ip地址
-d 守护进程(daemon)
-u 指定用户,如果当前为 root ,需要使用此参数指定用户
-m 最大内存,单位MB。默认64MB,32位操作系统,每个进程最多只能使用2GB,64位无限制
-M 禁止LRU策略,内存耗尽时返回错误,而不是删除数据
-c 最大连接数,默认是1024
-vv 查看日志
-P memcache的pid文件,结束memcache进程:kill `cat /tmp/memcached_32054.pid`
-f 增长因子,默认1.25
-n 初始chunk=key+suffix+value+32结构体,默认48字节
-L 启用大内存页,可以降低内存浪费,改进性能
-t 线程数,默认4。由于memcached采用NIO,所以更多线程没有太多作用
-R 每个event连接最大并发数,默认20
-C 禁用CAS命令(可以禁止版本计数,减少开销)
-I 每次申请内存的页的大小(page),默认1M,最小1k,最大128M
-F 禁用flush_all
(9)phpadmin安装配置
#wget https://files.phpmyadmin.net/phpMyAdmin/4.7.0/phpMyAdmin-4.7.0-all-languages.tar.gz #tar -xvf phpMyAdmin-4.7.0-all-languages.tar.gz #mv phpMyAdmin-4.7.0-all-languages /usr/local/nginx/html/phpMyAdmin
测试界面
http://47.98.97.98/phpMyAdmin/
转载请注明:梦绘设计 » WEB运维 » LNMP编译安装部署文档
版权声明
本站《作品展示》类文章均为原创,转载必须注明出处,技术分享类文章部分来源于网络,版权归原作者所有,若侵权请留言。