Centos 系統(tǒng) LNMP環(huán)境源碼編譯安裝以及配置

一:環(huán)境介紹

1.操作系統(tǒng):Centos 7.* ( 雙核4G、硬盤至少20G)
2.應(yīng)用軟件:nginx-1.8.1、mysql-5.6.29、php-5.6.30

二:源碼編譯安裝配置nginx、mysql、php

1.源碼編譯安裝nginx-1.8.1

官網(wǎng)下載nginx-1.8.1.tar.gz

http://nginx.org/en/download.html

下載pcre-8.40.tar.gz

https://ftp.pcre.org/pub/pcre/

yum安裝依賴包

yum install perl gcc-c++ make elinks zlib-devel openssl openssl-devel -y

pcre 解壓即可

tar -zxf pcre-8.4.0.tar.gz

開始編譯安裝nginx-1.8.1

tar -zxf nginx-1.8.1.tar.gz

cd nginx-1.8.1

./configure --prefix=/usr/local/nginx --with-pcre=/root/pcre-8.40 --with-http_stub_status_module --with-http_ssl_module

make

make install

修改nginx主配置文件,讓其包含/usr/local/nginx/conf/conf.d下的所有*.conf文件

mkdir /usr/local/nginx/conf/conf.d

sed -i '116s/$/include \/usr\/local\/nginx\/conf\/conf.d\/*.conf;/g' /usr/local/nginx/conf/nginx.conf

至此nginx安裝完畢

啟動nginx

/usr/local/nginx/sbin/nginx

查看80端口

netstat -ntpl |grep "80"

關(guān)閉防火墻/etc/init.d/iptables stop 或者防火墻打開80端口

(關(guān)閉nginx)

killall nginx
2.源碼編譯安裝mysql-5.6.29

官網(wǎng)下載mysql-5.6.29.tar.gz

https://downloads.mysql.com/archives/community/

下載cmake-3.4.0

https://cmake.org/files/v3.4/cmake-3.4.0.tar.gz

yum安裝依賴包

yum install gcc-c++ ncurses-devel perl-Module-Install.noarch libtool openssl-devel make -y

安裝cmake

tar -zxf cmake-3.4.0.tar.gz

cd cmake-3.4.0

./configure && make && make install

cmake安裝完畢

開始編譯安裝mysql-5.6.29

tar -zxf mysql-5.6.29.tar.gz

cd mysql-5.6.29

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/usr/local/mysql/data -DMYSQL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysqld.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_TCP_PORT=3306 -DWITH_EXTRA_CHARSETS=all -DWITH_DEBUG=0 -DENABLE_DEBUG_SYNC=0 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_READLINE=1 -DZLIB_INCLUDE_DIR=/usr -DWITH_READLINE=1
make
make install

創(chuàng)建mysql系統(tǒng)用戶組和用戶,并將mysql安裝目錄賦予root組和root用戶

groupadd mysql

useradd -g mysql -s /sbin/nologin -M mysql

chown mysql.mysql -R /usr/local/mysql

初始化mysql數(shù)據(jù)庫

/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

復(fù)制mysql啟動腳本

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

直接執(zhí)行修改文件

sed -i '46s/$/\/usr\/local\/mysql/g' /etc/init.d/mysqld
sed -i '47s/$/\/usr\/local\/mysql\/data/g' /etc/init.d/mysqld
sed -i '263s/datadir/basedir/g' /etc/init.d/mysqld

寫入mysql配置文件my.cnf

echo "[mysqld]

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysqld.sock
user = mysql
port = 3306
server_id = 2
#log-bin = mysql-bin
#log_bin_index = binlog.index
character_set_server = utf8
#lower_case_table_names = 1
#binlog_ignore_db = mysql
#replicate-do-db = mysql
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
innodb_file_per_table=1

[mysql.server]
character_set_server = utf8
socket=/usr/local/mysql/mysqld.sock

[client]
socket=/usr/local/mysql/mysqld.sock
default-character-set = utf8

[mysqld_safe]
character_set_server = utf8

[mysql]
socket=/usr/local/mysql/mysqld.sock
default-character-set = utf8


[mysqldump]
socket=/usr/local/mysql/mysqld.sock
default-character-set = utf8


[mysqladmin]
socket=/usr/local/mysql/mysqld.sock
character_set_server = utf8
" > /usr/local/mysql/my.cnf

將mysql加入centos系統(tǒng)環(huán)境變量
vim /etc/profile

echo -e "export MYSQL_HOME=\"/usr/local/mysql\"
export PATH=\"\$PATH:\$MYSQL_HOME/bin\"" >> /etc/profile

刷新環(huán)境變量

source /etc/profile

至此mysql安裝完畢

啟動mysql

/etc/init.d/mysqld start

查看3306端口

netstat -ntpl |grep "3306"

(停止或重啟mysql)

/etc/init.d/mysqld stop

/etc/init.d/mysqld restart

shell界面進(jìn)入mysql 刪除默認(rèn)的多余root賬戶

mysql -uroot -p


delete from mysql.user where Host='::1';
delete from mysql.user where Host='localhost.localdomain';
delete from mysql.user where User='';

將所有的root用戶更改密碼

update mysql.user set password=password("root") where user="root";

創(chuàng)建一個可以從其他任何地方訪問mysql的用戶 密碼為root

grant all privileges on *.* to 'root'@'%' identified by "root";

對用戶進(jìn)行增刪改后需要重啟數(shù)據(jù)庫或者執(zhí)行flush privileges;

查看mysql用戶

select user,host,password from mysql.user;
3.源碼編譯安裝php-5.6.30

官網(wǎng)下載php-5.6.30

http://php.net/downloads.php#v5.6.30

yum安裝依賴包

yum install gcc-c++ gd libxml2-devel libjpeg-devel libpng-devel net-snmp-devel curl-devel libxslt-devel pcre-devel libjpeg libpng libxml2 libcurl4-openssl-dev libcurl-devel libcurl freetype-config freetype freetype-devel unixODBC libxslt -y

開始編譯安裝php-5.6.30

tar -zxf php-5.6.30.tar.gz

cd php-5.6.30

./configure --prefix=/usr/local/php-5.6.30 --with-curl --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysql --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-freetype-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --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 && make && make install

從php源碼包復(fù)制php.ini配置文件到php安裝目錄,并做系統(tǒng)的軟連接

cp -a /root/php-5.6.30/php.ini-production /usr/local/php-5.6.30/etc/php.ini
ln -s /usr/local/php-5.6.30/etc/php.ini /etc/php.ini

從php源碼包復(fù)制php-fpm.conf配置文件到php安裝目錄,并做系統(tǒng)的軟連接

cp -a /usr/local/php-5.6.30/etc/php-fpm.conf.default /usr/local/php-5.6.30/etc/php-fpm.conf
ln -s /usr/local/php-5.6.30/etc/php-fpm.conf /etc/php-fpm.conf

修改php-fpm.conf配置參數(shù)

sed -i '25s/;//g' /usr/local/php-5.6.30/etc/php-fpm.conf

sed -i '303s/disable_functions =/disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status, ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,esca peshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,p osix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid, posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,pos ix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkf ifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posi x_times,posix_ttyname,posix_uname/g' /usr/local/php-5.6.30/etc/php.ini

sed -i '936s/;date.timezone =/date.timezone = PRC/g' /usr/local/php-5.6.30/etc/php.ini

sed -i '151s/; short_open_tag/short_open_tag = ON/g' /usr/local/php-5.6.30/etc/php.ini

sed -i '1905s/;opcache.enable=0/opcache.enable=1/g' /usr/local/php-5.6.30/etc/php.ini

sed -i '1908s/;opcache.enable_cli=0/opcache.enable_cli=0/g' /usr/local/php-5.6.30/etc/php.ini

sed -i '$a zend_extension=opcache.so' /usr/local/php-5.6.30/etc/php.ini

sed -i '509s/;env[PATH] = /usr/local/bin:/usr/bin:/bin/env[PATH] = /usr/local/bin:/usr/bin:/bin/:/usr/local/php5.6.30/bin/g' /usr/local/php-5.6.30/etc/php-fpm.conf

復(fù)制php啟動腳本

cp -a /root/php-5.6.30/sapi/fpm/php-fpm /etc/init.d/

啟動php

/etc/init.d/php-fpm

查看9000端口

netstat -ntpl |grep "9000"

(停止php)

killall php-fpm

測試nginx+php

mkdir /opt/test

echo "<?php
Phpinfo();
?>" > /opt/test/index.php

nginx配置

vim /usr/local/nginx/conf/conf.d/test.conf

server {
        listen          80;
        server_name     192.168.1.2;
        index           index.php;
        root            /opt/test;

        location /
        {
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ ^(.+.php)(.*)$ {
                fastcgi_split_path_info ^(.+.php)(.*)$;
                include fastcgi.conf;
                fastcgi_pass  127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param  PATH_INFO          $fastcgi_path_info;
        }
}

瀏覽器輸入192.168.1.2查看php頁面

覺得麻煩的同學(xué)可以私聊我給予幫助,或者提供腳本。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內(nèi)容

  • 一、配置防火墻,開啟80端口、3306端口 CentOS 7.0默認(rèn)使用的是firewall作為防火墻,這里改為i...
    ArleyDu閱讀 2,107評論 0 0
  • 啊 公司要開始新項(xiàng)目 移動的app 名字叫安好 運(yùn)維太坑爹了 給了個破配置 Xeon(TM) CPU 3.40...
    xiasix閱讀 1,503評論 0 2
  • php+mysql+apache+centos 編譯安裝 領(lǐng)導(dǎo)要求先保證php環(huán)境穩(wěn)定,然后再去考慮其他,例如性能...
    dnaEMx閱讀 2,236評論 1 16
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_閱讀 1,843評論 0 3
  • 回家的路很長 長的走不過黎明,山崗 與連綿不斷逝去的 荒原牧草,一片片油彩 涌動的夕陽 是誰在街頭,翹首盼望 游子...
    壟上行云閱讀 231評論 2 1