1. 程式人生 > >lnmp搭建(原始碼安裝)

lnmp搭建(原始碼安裝)

一般原始碼安裝分為四個步驟,解壓(tar),預編譯(執行原始碼包下的configure),編譯(make),編譯安裝(make install)

1.安裝nginx

參考部落格:https://www.linu e2xzen.com/lnmphuan-jing-da-jian-wan-quan-shou-ce-si-lnmpda-jian-yuan-ma-an-zhuang.html
http://baijiahao.baidu.com/s?id=1582175810794337267&wfr=spider&for=pc

(1)下載:

cd /usr/src # 一般軟體原始碼放在這個目錄下
wget http://nginx.org/download/nginx-1.0.13.tar.gz # 下載


nginx會有幾個依賴包,我們首先安裝依賴,不要安裝過程中會報錯:
yum -y install zlib-devel pcre-devel openssl-devel

(2)解壓,這裡解釋下引數,z代表gzip(也就是後面的.gz檔案)x代表加壓,v表示顯示詳細資訊,-f使用檔案檔案或裝置(必選引數)

tar -zxvf nginx-1.0.13.tar.gz

(3)預編譯

cd nginx-1.0.13
./configure --prefix=/usr/local/nginx # 指定安裝目錄為/usr/local/nginx
如果預編譯報錯:

(4)編譯安裝

預編譯完成後我們就可以進行編譯和安裝:
make

#編譯

執行後make後會有大量輸出,等待輸出完成後如果沒有報錯就可以進行安裝執行:
make install #安裝
安裝完成後我們可以到相應的目錄檢視安裝的檔案:
ls /usr/local/nginx/
conf html logs sbin

啟動nginx:
/usr/local/nginx/sbin/nginx

通過檢視埠看nginx是否啟動成功,nginx佔用TCP的80埠,執行下面命令:
netstat -antlp ¦ grep 80

新增服務到開機自動啟動(centos7開機自啟動nginx,php-fpm)
原始碼安裝的手動建立nginx.service服務檔案
參考部落格:https://www.jianshu.com/p/b5fa86d54685


1.在系統服務目錄裡建立nginx.service檔案
vi /lib/systemd/system/nginx.service
寫入如下內容
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target
After:描述服務類別
[Service]服務執行引數的設定
Type=forking是後臺執行的形式
ExecStart為服務的具體執行命令
ExecReload為重啟命令
ExecStop為停止命令
PrivateTmp=True表示給服務分配獨立的臨時空間
注意:[Service]的啟動、重啟、停止命令全部要求使用絕對路徑
[Install]執行級別下服務安裝的相關設定,可設定為多使用者,即系統執行級別為3
測試並加入開機自啟
先關閉nginx
使用以下命令開啟
systemctl start nginx.service #如果服務是開啟狀態,使用此命令會啟動失敗。

2.安裝mysql

MySQL自5.5版本以後,就開始使用CMake編譯工具了,因此,你在安裝原始檔中找不到configure檔案是正常的。很多人下到了新版的MySQL,因為找不到configure檔案,不知道該怎麼繼續下去。有沒有一篇可供參考的文章呢?其實在http://forge.mysql.com網站上有一篇文章,專門介紹瞭如何用CMake工具進行新版MySQL的編譯安裝。
參考部落格:https://help.aliyun.com/document_detail/50700.html?spm=5176.11065259.1996646101.searchclickresult.297e168awbmSRf
和:
https://www.chenyudong.com/archives/building-mysql-5-6-from-source.html#comments

(1)下載:

wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.16.tar.gz
安裝依賴:
yum install -y ncurses-devel

1、準備編譯環境。

yum groupinstall "Server Platform Development" "Development tools" -y
yum install cmake -y

2、準備mysql資料存放目錄。

#mkdir /mnt/data
#groupadd -r mysql
#useradd -r -g mysql -s /sbin/nologin mysql
#id mysql
uid=497(mysql) gid=498(mysql) groups=498(mysql)

3、更改資料目錄屬主屬組。

#chown -R mysql:mysql /mnt/data

4、解壓編譯在MySQL官網下載的穩定版原始碼包,這裡使用的是5.6.24版本

#tar xvf mysql-5.6.24.tar.gz -C /usr/local/src
#cd /usr/local/src/mysql-5.6.24
#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/mnt/data \
-DSYSCONFDIR=/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_LIBWRAP=0 \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

有時候會出現類似的問題。
Googlemock was not found. gtest-based unit tests will be disabled. You can run cmake . -DENABLE_DOWNLOADS=1 to automatically download and build required components from source. — If you are inside a firewall, you may need to use an http proxy: export http_proxy=http://example.com:80
後加引數-DENABLE_DOWNLOADS=1 自動下載。
有網路限制,設定http代理export http_proxy=http://example.com:80
然後執行: # make && make install

5、修改安裝目錄的屬組為mysql。

#chown -R mysql:mysql /usr/local/mysql/

6、初始化資料庫。

#/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mnt/data/
注:在CentOS 6.5版作業系統的最小安裝完成後,在/etc目錄下會存在一個my.cnf,需要將此檔案更名為其他的名字,如:/etc/my.cnf.bak,否則,該檔案會干擾原始碼安裝的MySQL的正確配置,造成無法啟動。

7、拷貝配置檔案和啟動指令碼。

#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#chmod +x /etc/init.d/mysqld
#cp support-files/my-default.cnf /etc/my.cnf

8、設定開機自動啟動。

#chkconfig mysqld on
#chkconfig --add mysqld

9、修改配置檔案中的安裝路徑及資料目錄存放路徑。

#echo -e "basedir = /usr/local/mysql\ndatadir = /mnt/data\n" >> /etc/my.cnf

10、設定PATH環境變數。

#echo "export PATH=$PATH:/usr/local/mysql/bin" > /etc/profile.d/mysql.sh
#source /etc/profile.d/mysql.sh

11、啟動服務。

#service mysqld start
#mysql -h 127.0.0.1

3.安裝php

方法一:
安裝依賴庫,
yum –y install gcc automake autoconf libtool make
yum –y install gcc gcc-c++ glibc
yum –y install libmcrypt-devel mhash-devel libxslt-devel
yum –y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel
yum –y install zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel
yum -y install ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel
yum -y install krb5 krb5-devel libidn libidn-devel openssl openssl-devel

(1)下載解壓

wget http://cn2.php.net/distributions/php-7.1.1.tar.gz
tar -zxf php-7.1.1
如果解壓縮時報錯,可能是安裝包的問題,需要重新下載。

(2)預編譯
cd php-7.1.1
./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt --enable-mbstring --disable-pdo --with-curl --disable-debug --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli --with-gd --with-jpeg-dir --with-gettext --enable-xml --enable-freetype

編譯過程中如果報錯,可以在編譯語句後加 --disable-fileinfo
然後執行命令make&&make install

( 3 ) 複製配置檔案
cp php.ini-production /usr/local/php/php.ini 
cp /usr/local/php/etc/php-fpm.conf.default /usr/locla/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

啟動php-fpm
/usr/local/php/sbin/php-fpm
設定開機自啟動
/etc/rc.local

配置nginx
vi /usr/local/nginx/conf/nginx.conf
新增內容如下:

檢視埠,kill程序
ps -ef | grep nginx
kill -9 pid
重啟,如果報錯根據錯誤提示修改配置檔案。
/usr/locl/nginx/sbin/nginx
然後在/usr/local/nginx/html下建立index.php,
vi /usr/local/nginx/html/index.php
寫入內容:<?php phpinfo(); ?>
儲存退出後,訪問localhost/index.php
看到版本資訊配置成功.
方法二:
參考部落格:https://help.aliyun.com/document_detail/50700.html?spm=5176.11065259.1996646101.searchclickresult.297e168awbmSRf

1.安裝方法一依賴,centos的yum源裡沒有libmcrypt-devel這個包,所以需要藉助elep的yum源,先安裝epel,在安裝libmcrypt

yum -y install epel-release
yum -y install libmcrypt-devel1.1
下載原始碼包:
wget http://cn2.php.net/distributions/php-5.6.23.tar.gz
2、解壓官網下載的原始碼包,編譯安裝。
注意:如果沒有安裝mysql,這裡去掉mysql路徑

#tar xvf php-5.6.23.tar.bz2 -C /usr/local/src
#cd /usr/local/src/php-5.6.23
#./configure --prefix=/usr/local/php \
--with-config-file-scan-dir=/etc/php.d \
--with-config-file-path=/etc \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--with-openssl \
-enable-xml \
--enable-sockets \
--enable-fpm \
--with-mcrypt \
--with-bz2
#make && make install
3、新增php和php-fpm配置檔案。
#cp /usr/local/src/php-5.6.23/php.ini-production /etc/php.ini
#cd /usr/local/php/etc/
#cp php-fpm.conf.default php-fpm.conf
#sed -i '[email protected];pid = run/[email protected] = /usr/local/php/var/run/[email protected]' php-fpm.confetc
4、新增php-fpm啟動指令碼。
#chmod +x /etc/init.d/php-fpm
5、新增php-fpm至服務列表並設定開機自啟。
#chkconfig --list php-fpm     
#chkconfig php-fpm on

6、啟動服務。

#service php-fpm start   

配置環境變數 PHP-v時,找到版本

export PATH=$PATH:/usr/local/php/bin

配置環境變數 nginx-v時,找到版本

export PATH=$PATH:/usr/local/nginx/sbin/

安裝composer之後,composer update時,如果出現http上或者更新緩慢的問題,需求切換成中國映象,具體參考部落格如下:https://pkg.phpcomposer.com/
方法一: 修改 composer 的全域性配置檔案(推薦方式)
開啟命令列視窗(windows使用者)或控制檯(Linux、Mac 使用者)並執行如下命令:

composer config -g repo.packagist composer https://packagist.phpcomposer.com