服務器部署LNMP環(huán)境(源碼編譯安裝)后附操作文檔
服務器部署lnmp環(huán)境(源碼編譯安裝)
軟件版本:CentOS 7,Nginx 1.16,MySQL 5.5.22,php 5.3.28,cmake 2.8.6
部署nginx
首先安裝nginx所需的依賴庫:yum -y install pcre-devel zlib-devel openssl-devel
同時配置編譯環(huán)境需要依賴gcc、gcc-c++、make軟件包:yum -y install gcc gcc-c++
創(chuàng)建nginx用戶:useradd -M -s /sbin/nologin nginx
查看nginx用戶是否創(chuàng)建成功:tail -1 /etc/passwd;tail -1 /etc/group
將nginx的包解包到/usr/src下: tar xf tool/nginx-1.16.0.tar.gz -C /usr/src/
進入解好的包:cd /usr/src/nginx-1.16
配置安裝nginx,指定安裝路徑為/usr/local/nginx,安裝用戶為nginx,用戶組為nginx,同時安裝幾個需要的模塊:./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-file-aio ?--with-http_mp4_module --with-http_ssl_module && make && make install
鍵入echo $?查看返回值是否為0,驗證是否安裝成功。
為16目錄創(chuàng)建軟連接,這樣可以更好的管理它的版本ln -s /usr/local/nginx1.16/ /usr/local/nginx
為nginx啟動文件創(chuàng)建軟連接,鏈接到usr/local/sbin下,這樣直接執(zhí)行nginx命令就可以實現(xiàn)nginx的啟動、停止、重啟:
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
鍵入nginx命令啟動nginx服務:nginx,檢測語法:nginx -t
測試響應頭和響應碼:curl -I
http://192.168.1.40
Nginx部署成功,nginx文件的路徑。
部署MySQL數(shù)據(jù)庫
首先安裝ncurses-devel,其是字符終端下屏幕控制的基本庫:yum -y install ncurses-devel
將cmake(MySQL5.5版本以后需要借助cmake編譯安裝)的包解壓到/usr/src目錄下:
tar xf tool/cmake-2.8.6.tar.gz -C /usr/src
進入解包好的cmake,配置編譯安裝:cd /usr/src/cmake-2.8.6/
執(zhí)行:./configure && gmake &&gmake install 開始編譯安裝(該軟件編譯安裝時間較長,請耐心等待)
鍵入echo $?查看返回值是否為0,判斷是否安裝成功。
將MySQL安裝包解包到/usr/src/下:tar xf mysql-5.5.22.tar.gz -C /usr/src/
進入/usr/src/mysql-5.5.22/目錄
用cmake編譯安裝(此項編譯過程較長,請耐心等待):
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc && make && make install
鍵入echo $?查看返回值是否為0,判斷是否安裝成功。
定義MySQL中命令的環(huán)境變量,即可直接調(diào)用MySQL里的命令
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
復制MySQL的配置文件my.cnf到etc下:cp -p /usr/src/mysql-5.5.22/support-files/my-medium.cnf /etc/my.cnf
將設置開機的文件放到d下:
cp -p /usr/src/mysql-5.5.22/support-files/mysql.server /etc/init.d/mysqld
為其增加一個執(zhí)行權限: chmod +x /etc/init.d/mysqld
將mysqld這個服務添加到chkconfig(centos6中的命令,7里也能用)中管理(相當于systemctl):chkconfig --add mysqld,并設置開機自啟動:chkconfig mysqld on。
創(chuàng)建mysql用戶:useradd -M -s /sbin/nologin mysql
更改屬組: chown -R mysql:mysql /usr/local/mysql/
源碼安裝與二進制安裝需要初始化,yum安裝則不需要:/usr/local/mysql/scripts/mysql_install_db ?--basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql
啟動MySQL: /etc/init.d/mysqld start(此處注意,之前yum安裝過mysql或mariadb的話,要用yum -y remove卸載干凈,否則源碼編譯安裝的mysql則無法啟動)
查看一下mysqld服務的端口號:netstat -anptu | grep mysqld
給數(shù)據(jù)庫創(chuàng)建一個用戶名密碼:mysqladmin -uroot ?password "123123"
運用此命令登錄mysql數(shù)據(jù)庫:mysql -uroot -p123123
部署php
首先安裝一些依賴包: yum -y install gd libxml2-devel libjpeg-devel libpng-devel
將php軟件包解包到/usr/src下:tar xf tool/php-5.3.28.tar.gz -C /usr/src/
進入解包好的文件中: cd /usr/src/php-5.3.28/
配置安裝php-5.3.28(指定安裝路徑;使用gd庫,使用縮略圖;使用壓縮;指定鏈接mysql的位置;指定配置文件路徑;php加密;讓php以php-fpm運行;支持圖片的庫在哪):
./configure ?--prefix=/usr/local/php5 ?--with-gd ?--with-zlib --with-mysql=/usr/local/mysql/ ?--with-config-file-path=/usr/local/php5 ?--enable-mbstring --enable-fpm --with-jpeg-dir=/usr/lib && make && make install
鍵入echo $?查看返回值是否為0,驗證是否安裝成功。
復制php的模板文件:
cp -p /usr/src/php-5.3.28/php.ini-development /usr/local/php5/php.ini
創(chuàng)建php命令的軟連接:ln -s /usr/local/php5/bin/* /usr/local/bin/ ;ln -s /usr/local/php5/sbin/* /usr/local/sbin/
進入php5目錄下的etc文件:cd /usr/local/php5/etc
復制php-fpm.conf.default文件為php-fpm.conf
vim編輯php-fpm.conf文件:vim php-fpm.conf,配置如下:
啟動php服務:php-fpm
查看進程號:netstat -anptu|grep php
查看產(chǎn)生進程:ps -aux | grep php-fpm
整合LNMP
配置nginx配置文件:vim /usr/local/nginx/conf/nginx.conf
配置內(nèi)容如上圖
檢測nginx語法:nginx -t
重啟nginx服務:nginx -s reload
訪問網(wǎng)頁:168.1.40/index.php
創(chuàng)建php文件,測試能否鏈接數(shù)據(jù)庫:vim /usr/local/nginx/html/test.php
將以下內(nèi)容寫入文件
$link=mysql_connect('localhost','root','123123');
if($link) echo "
successful
";mysql_close();
?>
重啟nginx服務:nginx -s reload
訪問168.1.40/test.php,返回successful則鏈接后端數(shù)據(jù)庫成功。
lnmp優(yōu)化
簡化配置,配置版本號的隱藏,網(wǎng)頁壓縮,nginx服務的最大連接數(shù)
編輯nginx配置文件,將下面的模板復制進去:vim /usr/local/nginx/conf/nginx.conf
user ?nginx nginx;
worker_processes ?2;
error_log ?logs/error.log;
pid ???????logs/nginx.pid;
events {
use epoll;
worker_connections ?10240;
}
http {
include ??????mime.types;
default_type ?application/octet-stream;
sendfile ???????on;
gzip ???????????on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;
keepalive_timeout ?65;
server_tokens off;
log_format ?main ?'$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
server {
listen ??????80;
server_name ?localhost;
location / {
root ??html;
index ?index.html index.htm;
}
error_page ??500 502 503 504 ?/50x.html;
location = /50x.html {
root ??html;
}
}
}
使用curl -I驗證一下是否實現(xiàn)了nginx隱藏版本號:curl -I http://192.168.1.40
版本號實現(xiàn)了隱藏
Nginx的版本號隱藏還可以使用修改源碼包,重新編譯的方式,方法如下,看圖說話,不詳細說明了。
附件: 服務器部署lnmp環(huán)境.docx 147.25KB 下載次數(shù):2次
LNMP MySQL Nginx
版權聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權內(nèi)容。