LNMP以源碼實現環境搭建的過程(詳細)

來源:互聯網
上載者:User
本篇文章給大家帶來的內容是關於LNMP以源碼的方式記錄環境搭建的過程(詳細),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。

LNMP指的是在Linux下用PHP+MYSQL+NGIX搭建網站的環境。

Nginx是一個高效能的 HTTP 和 反向 Proxy 伺服器,也是一個 IMAP/POP3/SMTP Proxy 伺服器。Nginx不僅可以作為web伺服器,也可以作為負載平衡器。

MySQL是一款開源免費的資料軟體,MySQL是一個小型關係型資料庫管理系統,其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,許多中小型網站為了降低網站總體擁有成本而選擇了MySQL作為網站資料庫.

PHP,是英文超級文本預先處理語言Hypertext Preprocessor的縮寫。PHP 是一種 HTML 內嵌式的語言,是一種在伺服器端執行的嵌入HTML文檔的指令碼語言,其源碼是由C語言寫成的,故風格也與C語言類似,被廣泛的運用於搭建中小型網站。

下面就記錄一下LNMP環境的搭建過程,題主的Linux環境是CentOs虛擬鏡像。

【Nginx安裝】

目前最新的Nginx穩定版本是1.14.0,網址為http://nginx.org/en/download.html,可直接在Windows下載好再rz上傳到Linux下,也可直接用wget方式下載,下面列出的下載方式是後者。

cd /usr/src          #一般將源碼放在此目錄下wget http://nginx.org/download/nginx-1.14.0.tar.gz  #安裝

注意:nginx的安裝依賴zlib-devel pcre-devel openssl-devel 這幾個包,故我們在安裝nginx前需先安裝這幾個包,以免安裝過程中出錯。

yum -y install zlib-devel pcre-devel openssl-devel

........

一般源碼安裝分為4個步驟,解壓(tar命令)先行編譯(執行源碼包下的configure),編譯(make),編譯安裝(make install) 。

1、解壓

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


2、先行編譯

我們進行先行編譯的時候,一般會帶上一些參數,已達到我們想要安裝的效果,比如啟用某個功能,禁用某個功能:

進入源碼包目錄進行先行編譯:

cd nginx-1.14.0 ./configure --prefix=/data/webserver/nginx\   # 指定安裝目錄為/usr/local/nginx--with-openssl=/usr/include/openssl\  # 啟用ssl--with-pcre\                          # 啟用正規運算式--with-http_stub_status_module        # 安裝可以查看nginx狀態的程式

                  ......  

3、編譯

./configure指執行目前的目錄下的configure檔案,先行編譯完成後我們就可以進行編譯和安裝:

make   #編譯

 ....

4、安裝

make install #安裝

 ....  

  安裝完成後我們可以到相應的目錄查看安裝的檔案:

ls /data/webserver/nginx

  接著就可以啟動nginx了:

/data/webserver/nginx/sbin/nginx   #啟動nginx/data/webserver/nginx/sbin/nginx -s stop #停止nginx/data/webserver/nginx/sbin/nginx -s relaod #重啟nginx


#由圖可知nginx已啟動

netstat -antlp ¦ grep 80  #nginx佔用TCP的80連接埠由圖也可知nginx已啟動

【MySQL安裝】  

至此,nginx已安裝啟動完畢,接著我們來安裝MySQL,類似的,我們依舊需要先安裝MySQL的依賴包:

yum -y install wget  cmake gcc gcc-c++ ncurses  ncurses-devel  libaio-devel  openssl openssl-devel

.......

接著我們下載源碼:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.11.tar.gz

.......

建立mysql使用者:

 groupadd mysql useradd -r -g mysql -s /bin/false mysql

建立安裝目錄和資料目錄:

mkdir -p /usr/local/mysqlmkdir -p /data/mysql

解壓源碼包:

 tar -zxf mysql-boost-8.0.11.tar.gz -C /usr/local

編譯&安裝:

cd /usr/local/mysql-8.0.11cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=/usr/local/mysql-8.0.11/boost make  && make install

安裝成功後我們可啟動mysql:

cd /usr/local/mysqlbin/mysqld_safe --user=mysql

啟動成功,串連mysql

bin/mysql -uroot -p

此時要求輸入串連密碼,比較舊的版本的mysql安裝時預設密碼為空白,但該5.7之後的版本有預設的密碼,由於我們不知道,因此關閉mysql服務後(可直接查詢進程根據進程號kill掉或/etc/init.d/mysql stop ),改用跳過密碼的方式重新開啟mysql服務。

bin/mysqld_safe --user=mysql & skip-grant-tables

重新串連

bin/mysql -uroot

串連成功後修改密碼

mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';mysql> FLUSH PRIVILEGES;

此時重啟mysql服務,便可以帳號密碼方式串連mysql。

【PHP安裝】

先安裝php依賴包,否則在編譯安裝php7的過程當中會出現各種報錯,安裝完成後即可進入下一個環節。

安裝擴充包並更新系統核心:

yum install epel-release -yyum update

安裝php相依元件(包含Nginx依賴),前面nginx以及mysql安裝過的可以忽略,也可以直接複製運行,會跳過已安裝的依賴:

yum -y install wget vim pcre pcre-devel openssl openssl-devel libicu-devel gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap jemalloc-devel cmake boost-devel bison automake libevent libevent-devel gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash libxslt libxslt-devel readline readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel


........

建立使用者和組,並下載php安裝包解壓:

cd /tmpgroupadd wwwuseradd -g www wwwwget http://cn2.php.net/distributions/php-7.2.0.tar.gztar xvf php-7.2.1.tar.gzcd php-7.2.0

設定變數並開始源碼編譯:

cp -frp /usr/lib64/libldap* /usr/lib/./configure --prefix=/data/webserver/php \--with-config-file-path=/data/webserver/php/etc \--enable-fpm \--with-fpm-user=www \--with-fpm-group=www \--enable-mysqlnd \--with-mysqli=mysqlnd \--with-pdo-mysql=mysqlnd \--enable-mysqlnd-compression-support \--with-iconv-dir \--with-freetype-dir \--with-jpeg-dir \--with-png-dir \--with-zlib \--with-libxml-dir \--enable-xml \--disable-rpath \--enable-bcmath \--enable-shmop \--enable-sysvsem \--enable-inline-optimization \--with-curl \--enable-mbregex \--enable-mbstring \--enable-intl \--with-mcrypt \--with-libmbfl \--enable-ftp \--with-gd \--enable-gd-jis-conv \--enable-gd-native-ttf \--with-openssl \--with-mhash \--enable-pcntl \--enable-sockets \--with-xmlrpc \--enable-zip \--enable-soap \--with-gettext \--disable-fileinfo \--enable-opcache \--with-pear \--enable-maintainer-zts \--with-ldap=shared \--without-gdbm \

開始安裝

make -j 4 && make install

完成安裝後配置php.ini檔案:

cp php.ini-development /data/webserver/php/etc/php.inicp /data/webserver/php/etc/php-fpm.conf.default /data/webserver/php/etc/php-fpm.confcp /data/webserver/php/etc/php-fpm.d/www.conf.default /data/webserver/php/etc/php-fpm.d/www.conf

修改 php.ini 相關參數:

vim /data/webserver/php/etc/php.iniexpose_php = Offshort_open_tag = ONmax_execution_time = 300max_input_time = 300memory_limit = 128Mpost_max_size = 32Mdate.timezone = Asia/Shanghaimbstring.func_overload=2

重啟PHP,至此LNMP環境已搭建完成。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.