詳解CentOS 7.0源碼包搭建LNMP 實(shí)際環(huán)境搭建
Centos7+Nginx1.11.7+MySQL5.7.16+PHP7.1.0+openssl-1.1.0c
一、linux 系統(tǒng)限制配置
1、關(guān)閉系統(tǒng)防火墻
systemctl stop firewalld.service 關(guān)閉防火墻 systemctl disable firewalld.service 禁用防火墻
2、關(guān)閉SElinux
sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config setenforce 0 selinux 立即生效
二、系統(tǒng)安裝約定
軟件源代碼包存放位置:/usr/local/src
源碼包編譯安裝位置:/usr/local/軟件名字
三、下載軟件包
1、下載nginx最新穩(wěn)定版本
wget -P /usr/local/src http://nginx.org/download/nginx-1.11.7.tar.gz
2、下載mysql-boost-5.7.16 帶 boost 如果不帶源碼安裝如果網(wǎng)絡(luò)環(huán)境不會(huì)可能會(huì)出現(xiàn)錯(cuò)誤
wget -P /usr/local/src http://cdn.mysql.com/Downloads/MySQL-5.7/mysql-boost-5.7.16.tar.gz
3、下載php-7.1.0版本
wget -P /usr/local/src http://cn2.php.net/distributions/php-7.1.0.tar.gz
4、下載libmemcached-1.0.18
wget -P /usr/local/src https://launchpadlibrarian.net/165454254/libmemcached-1.0.18.tar.gz
5、下載php-memcached
yum -y install git cd /usr/local/src git clone -b php7 https://github.com/php-memcached-dev/php-memcached.git
6、下載openssl-1.1.0c
wget -P /usr/local/src https://www.openssl.org/source/openssl-1.1.0c.tar.gz
四、安裝編譯器及依賴
yum -y insyall epel-release yum -y install patch gcc gcc-c++ readline-devel zlib-devel libffi-devel \ openssl openssl-devel make autoconf automake libtool bison libxml2 \ libxml2-devel libxslt-devel libyaml-devel python python-docutils \ cmake imake expat-devel libaio libaio-devel bzr ncurses-devel wget \ libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel \ pcre-devel curl-devel libmcrypt libmcrypt-devel
五、編譯安裝mysql-boost-5.7.16 方便再次安裝創(chuàng)建mysql_install.sh腳本
1、mysql_install.sh內(nèi)容
#!/bin/bash #yum update -y #yum install -y cmake gcc-c++ ncurses-devel gcc make openssl* #mysql安裝腳本 DBDIR='/data/mysql' #mysql數(shù)據(jù)存儲(chǔ)目錄 MYSQLDIR='/usr/local/mysql' # mysql安裝目錄 PASSWD='123456' # mysql root密碼 安裝完成可遠(yuǎn)程ip登陸 [ -d $DBDIR ] || mkdir $DBDIR -p id mysql &> /dev/null if [ $? -ne 0 ];then useradd mysql -s /sbin/nologin -M fi chown -R mysql:mysql $DBDIR cd /usr/local/src tar -xvf mysql-boost-5.7.16.tar.gz cd mysql-5.7.16 cmake . -DCMAKE_INSTALL_PREFIX=$MYSQLDIR \ -DMYSQL_DATADIR=$DBDIR \ -DSYSCONFDIR=/etc \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DWITH_LIBWRAP=0 \ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ -DWITH_BOOST=/usr/local/src/mysql-5.7.16/boost/boost_1_59_0 \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci if [ $? != 0 ];then echo "cmake error!" exit 1 fi make && make install if [ $? -ne 0 ];then echo "install mysql is failed!" && /bin/false fi sleep 2 chown -R mysql:mysql $MYSQLDIR chown -R root:root $MYSQLDIR cp $MYSQLDIR/support-files/my-default.cnf /etc/my.cnf echo export PATH=$PATH:$MYSQLDIR/bin:$MYSQLDIR/lib >>/etc/profile source /etc/profile cat >> /etc/my.cnf << EOF character_set_server = utf8 basedir = $MYSQLDIR datadir = $DBDIR port = 3306 server_id = 1 socket = /tmp/mysql.sock explicit_defaults_for_timestamp=true EOF sed -i 's/sql_mode=.*/sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER/g' /etc/my.cnf source /etc/profile sleep 5 cd $MYSQLDIR cp support-files/mysql.server /etc/init.d/mysqld chmod 700 /etc/init.d/mysqld mysql_ssl_rsa_setup rm -rf $DBDIR mysqld --initialize --user=mysql if [ $? -ne 0 ];then echo "install mysql is failed!" && /bin/false fi #/etc/init.d/mysqld stop mysqld_safe --user=mysql --skip-grant-tables --skip-networking & sleep 5 echo "update user set authentication_string=Password('$PASSWD') where user='root'; flush privileges;" | mysql mysql echo "set password=Password('$PASSWD'); flush privileges;" | mysql -u root -p$PASSWD --connect-expired-password sleep 5 echo "GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '$PASSWD'; FLUSH PRIVILEGES; " | mysql -u root -p$PASSWD /etc/init.d/mysqld restart if [ $? -ne 0 ];then echo "install mysql is failed!" && /bin/false fi IDSO=`cat /etc/ld.so.conf| grep $MYSQLDIR/lib | wc -l ` if [ $IDSO -eq 0 ];then echo "$MYSQLDIR/lib" >> /etc/ld.so.conf ldconfig fi chkconfig mysqld on
2、給 mysql_install.sh 可執(zhí)行權(quán)限
chmod +x mysql_install.sh
3、運(yùn)行mysql_install.sh
./mysql_install.sh
六、編譯安裝php7 創(chuàng)建php安裝腳本php7_install.sh
1、vim php7_install.sh
#!/bin/bash if [ $( find / -name mysql | wc -l ) -gt 1 ];then echo " mysql is install " else yum install -y mysql fi cd /usr/local/src tar -xzvf php-7.1.0.tar.gz cd ./php-7.1.0 ./configure \ --prefix=/usr/local/php7 \ --exec-prefix=/usr/local/php7 \ --with-config-file-path=/usr/local/php7/etc \ --with-curl \ --with-freetype-dir \ --with-gd \ --with-gettext \ --with-iconv-dir \ --with-kerberos \ --with-libdir=lib64 \ --with-libxml-dir \ --with-mysqli \ --with-openssl \ --with-pcre-regex \ --with-pdo-mysql \ --with-pdo-sqlite \ --with-pear \ --with-png-dir \ --with-xmlrpc \ --with-xsl \ --with-zlib \ --with-zlib-dir \ --with-mhash \ --with-mcrypt \ --with-openssl-dir \ --with-jpeg-dir \ --enable-fpm \ --enable-bcmath \ --enable-libxml \ --enable-inline-optimization \ --enable-gd-native-ttf \ --enable-mbregex \ --enable-mbstring \ --enable-opcache \ --enable-pcntl \ --enable-shmop \ --enable-soap \ --enable-sockets \ --enable-sysvsem \ --enable-xml \ --enable-zip make && make install # 中文php畫圖取消這個(gè)參數(shù),不然會(huì)出現(xiàn)亂碼 # --enable-gd-jis-conv \
2、給 php7_install.sh 可執(zhí)行權(quán)限
chmod +x php7_install.sh
3、執(zhí)行 php7_install.sh
./php7_install.sh
4、編譯安裝libmemcached-1.0.18
vim libmemcached_install.sh
#/!bin/bash cd /usr/local/src tar -zxvf libmemcached-1.0.18.tar.gz cd ./libmemcached-1.0.18 ./configure --prefix=/usr/local/libmemcached make && make install chmod +x libmemcached_install.sh ./libmemcached_install.sh
5、編譯安裝php-memcached
vim memcached_install.sh
#!/bin/bash cd /usr/local/src/php-memcached /usr/local/php7/bin/phpize ./configure --with-libmemcached-dir=/usr/local/libmemcached \ --with-php-config=/usr/local/php7/bin/php-config \ --disable-memcached-sasl make && make install chmod +x memcached_install.sh ./memcached_install.sh
留意編完成生成文件路徑
Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/
七、編譯安裝openssl-1.1.0c
vim openssl_install.sh
#!/bin/bash #openssl install cd /usr/local/src tar -xvf openssl-1.1.0c.tar.gz cd /usr/local/src/openssl-1.1.0c ./config --openssldir=/usr/local/ssl make && make install ./config shared --openssldir=/usr/local/ssl make clean make && make install IDSO=`cat /etc/ld.so.conf| grep /usr/local/lib64 | wc -l ` if [ $IDSO -eq 0 ];then echo "/usr/local/lib64" >> /etc/ld.so.conf fi ldconfig chmod +x openssl_install.sh ./openssl_install.sh
八、編譯安裝nginx-1.11.7
vim nginx_install.sh
#!/bin/bash # nginx install id nginx &> /dev/null if [ $? -ne 0 ];then groupadd -r nginx useradd -g nginx -r nginx fi cd /usr/local/src tar -xvf nginx-1.11.7.tar.gz cd /usr/local/src/nginx-1.11.7 ./configure --prefix=/usr/local/nginx \ --sbin-path=/usr/sbin/nginx \ --conf-path=/etc/nginx/nginx.conf \ --error-log-path=/var/log/nginx/error.log \ --http-log-path=/var/log/nginx/access.log \ --pid-path=/var/run/nginx.pid \ --lock-path=/var/run/nginx.lock \ --http-client-body-temp-path=/var/cache/nginx/client_temp \ --http-proxy-temp-path=/var/cache/nginx/proxy_temp \ --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \ --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \ --http-scgi-temp-path=/var/cache/nginx/scgi_temp \ --user=nginx \ --group=nginx \ --with-http_ssl_module \ --with-http_realip_module \ --with-http_addition_module \ --with-http_sub_module \ --with-http_dav_module \ --with-http_flv_module \ --with-http_mp4_module \ --with-http_gunzip_module \ --with-http_gzip_static_module \ --with-http_random_index_module \ --with-http_secure_link_module \ --with-http_stub_status_module \ --with-http_auth_request_module \ --with-threads \ --with-stream \ --with-openssl=/usr/local/src/openssl-1.1.0c \ # openssl 源碼解壓路徑 --with-stream_ssl_module \ --with-http_slice_module \ --with-mail \ --with-mail_ssl_module \ --with-file-aio \ --with-http_v2_module \ --with-ipv6 mkdir -pv /var/cache/nginx/{client_temp,proxy_temp,fastcgi_temp,uwsgi_temp,scgi_temp} make && make install
2、給nginx_install.sh可執(zhí)行權(quán)限
chmod +x nginx_install.sh ./nginx_install.sh
九、配置PHP7
/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/memcached.so
這個(gè)路徑是 隨機(jī)可變的所以要注意
留意變完成生成文件路徑
Installing shared extensions: /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/
cd /usr/local/src/php-7.1.0 cp php.ini-production /usr/local/php7/etc/php.ini cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf sed -i "s/user = .*/user = nginx/g" /usr/local/php7/etc/php-fpm.d/www.conf sed -i "s/group = .*/group = nginx/g" /usr/local/php7/etc/php-fpm.d/www.conf cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm chkconfig php-fpm on cat >> /usr/local/php7/etc/php.ini<< EOF soap.wsdl_cache_enabled=1 max_input_time = 600 max_execution_time = 300 date.timezone = Asia/Shanghai post_max_size = 32M memory_limit = 128M mbstring.func_overload = 1 extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/memcached.so EOF cat > /usr/local/nginx/html/index.php<<EOF <?php phpinfo(); ?> EOF service php-fpm start
十、配置nginx
1、重命名:/etc/nginx/nginx.conf
mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.back
2、新建/etc/nginx/nginx.conf
cat > /etc/nginx/nginx.conf << EOF user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '\$remote_addr - \$remote_user [\$time_local] "\$request" ' '\$status \$body_bytes_sent "\$http_referer" ' '"\$http_user_agent" "\$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; } EOF
3、創(chuàng)建/etc/nginx/conf.d
mkdir -p /etc/nginx/conf.d
4、創(chuàng)建支持php-fpm web nginx配置
cat > /etc/nginx/conf.d/default.conf << EOF server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root /usr/local/nginx/html; index index.php index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # 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 fastcgi_params; } location ~* ^.+\.(jpg|jpeg|gif|png|bmp)$ { access_log off; root opencart; expires 30d; break; } } EOF
5、創(chuàng)建nginx啟動(dòng)腳本
vim /etc/init.d/nginx
# chkconfig: 2345 10 90 # description: Start and Stop nginx PATH=/usr/local/bin:/sbin:/usr/bin:/bin EXEC=/usr/sbin/nginx PIDFILE=/var/run/nginx.pid CONF="/etc/nginx/nginx.conf" AUTH="1234" case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed." else echo "Starting nginx server..." $EXEC -c $CONF & fi if [ "$?"="0" ] then echo "nginx is running..." fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE exists, process is not running." else PID=$(cat $PIDFILE) echo "Stopping..." kill -9 $PID PID=$(pidof nginx) kill -9 $PID rm -rf /var/run/nginx.pid sleep 2 while [ -x $PIDFILE ] do echo "Waiting for nginx to shutdown..." sleep 1 done echo "nginx stopped" fi ;; reload) $EXEC -s reload ;; restart|force-reload) ${0} stop ${0} start ;; *) echo "Usage: /etc/init.d/nginx {start|stop|restart|force-reload|reload}" >&2 exit 1 esac
6、給 /etc/init.d/nginx 可執(zhí)行權(quán)限
chmod +x /etc/init.d/nginx
7、設(shè)置開機(jī)啟動(dòng)
chkconfig nginx on
8、啟動(dòng)nginx
service nginx start
十一、測(cè)試
[root@QKA169 src]# openssl version OpenSSL 1.1.0c 10 Nov 2016 mysql -u root -p123456 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) 看看是否登陸成功。遠(yuǎn)程帶IP是否登陸成功 mysql -u root -h192.168.1.69 -p123456 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.7.16 Source distribution Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
測(cè)試nginx 是否能打開
[root@QKA169 html]# ps -ef | grep php-fpm root 337433 1 0 18:03 ? 00:00:00 php-fpm: master process (/usr/local/php7/etc/php-fpm.conf) nobody 337434 337433 0 18:03 ? 00:00:00 php-fpm: pool www nobody 337435 337433 0 18:03 ? 00:00:00 php-fpm: pool www root 337454 37888 0 18:12 pts/0 00:00:00 grep --color=auto php-fpm [root@QKA169 html]# ps -ef | grep nginx root 337400 1 0 18:01 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf nginx 337401 337400 0 18:01 ? 00:00:00 nginx: worker process root 337456 37888 0 18:13 pts/0 00:00:00 grep --color=auto nginx [root@QKA169 html]# netstat -nalp | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 337400/nginx: maste tcp 0 0 192.168.1.69:80 192.168.6.6:54714 TIME_WAIT - tcp 0 0 192.168.1.69:80 192.168.6.6:54709 TIME_WAIT - 遠(yuǎn)程打開 http://192.168.1.69/
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- CentOS 6.5中利用yum搭建LNMP環(huán)境的步驟詳解
- centos 7.2下搭建LNMP環(huán)境教程
- 阿里云Centos7安裝LNMP+wordpress
- CentOS7編譯安裝新版LNMP環(huán)境
- centos7.0之Lnmp和Lamp詳細(xì)介紹
- CentOS7 LNMP+phpmyadmin環(huán)境搭建 第三篇phpmyadmin安裝
- CentOS 7配置LNMP開發(fā)環(huán)境及配置文件管理詳解
- CentOS 7.0編譯安裝lnmp教程(Nginx1.6.0+MySQL5.6.19+PHP5.5.14)
- CentOS6.7系統(tǒng)中配置LNMP環(huán)境
- centos7利用yum安裝lnmp的教程(linux+nginx+php7.1+mysql5.7)
相關(guān)文章
Ubuntu20.04 VNC 安裝與設(shè)置實(shí)現(xiàn)
這篇文章主要介紹了Ubuntu20.04 VNC 安裝與設(shè)置實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08詳解CentOS5.5 下搭建 PHP 環(huán)境(最佳的LAMP環(huán)境)
本篇文章詳細(xì)介紹了詳解CentOS5.5 下搭建 PHP 環(huán)境(最佳的LAMP環(huán)境),有需要的小伙伴可以參考下。2016-10-10Linux上通過SSH掛載遠(yuǎn)程文件系統(tǒng)方法詳解
在本篇內(nèi)容里小編給大家整理了關(guān)于在Linux上通過SSH掛載遠(yuǎn)程文件系統(tǒng)的相關(guān)知識(shí)點(diǎn),需要的朋友們跟著學(xué)習(xí)下。2019-03-03apache開啟.htaccess及.htaccess的使用方法
今天本地調(diào)試PHP程序,用到了.htaccess,而默認(rèn)配置里面開啟.htaccess,在網(wǎng)上找到了開啟.htaccess的可行方法,供朋友們借鑒。2010-12-12Centos7的apache網(wǎng)站環(huán)境搭建wordpress
本篇文章給大家詳細(xì)分析了在Centos7的apache網(wǎng)站環(huán)境搭建wordpress的詳細(xì)操作方法,有興趣的朋友參考下。2018-02-02Linux如何修改hosts文件并刷新DNS生效hosts文件
這篇文章主要介紹了Linux如何修改hosts文件并刷新DNS生效hosts文件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07