前提:假設閱讀本文的讀者已經擁有基本的linux使用技巧,可以解決系統安裝問題,以及軟件安裝的技巧。php
注意: 本文所涉及的主要安裝包(須要下載使用的)安裝包,在本文最後會給出百度雲盤連接,須要使用的,能夠自由下載。html
建議: 建議先通篇閱讀本文,瞭解Nginx 各組件之間的關係後再進行安裝,作到胸有大局,而後進行進一步的操做。mysql
安裝所在的機器配置:linux
百度雲盤:連接: http://pan.baidu.com/s/1o8SyQ2e 密碼: i6hknginx
groupadd nginx useradd -g nginx nginx groupadd mysql useradd -g mysql mysql
yum -y install gcc gcc-c++
nginx 須要第三方庫的支持:c++
gzip 用來壓縮網頁。gzip 須要 zlib庫。web
rewrite 用來實現網頁重定向的功能。 rewrite 須要 pcre(Perl Compatible Regular Expression)庫。sql
ssl 是一個加密庫。如https.ssl 功能須要 openssl庫數據庫
yum -y install \ zlib \ zlib-devel \ openssl \ openssl-devel \ pcre pcre-devel
那麼既然已經安裝了 zlib openssl pcere 包爲何還要安裝 zlib-devel 等包呢?api
devel 包主要是供開發使用的,包裏面至少包括如下2個東西。
一、頭文件
二、連接庫
以zlib 和 zlib-devel 爲例.
若是你安裝的是基於zlib 開發的程序,只須要安裝zlib就行。
若是你要你變使用了glib的源代碼,則須要使用glib-devel。
本文中咱們要先安裝zlib,因爲不肯定咱們機器裏面有沒有這個庫,因此就一併將zlib-devel安裝上了。
因爲yum會自動解決依賴,因此即便沒有安裝-devel,應該也會本身安裝。做爲了解原理,建議你們仍是手動安裝。
mkdir -p /usr/local/webserver/source cd /usr/local/webserver/source
從文後的百度雲盤中下載nginx-1.8.0.tar.gz 文件。
tar -xf nginx-1.8.0.tar.gz //解壓文件 cd nginx-1.8.0 ./configure --help //查看編譯
選項
./configure --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install /usr/local/webserver/nginx/sbin/nginx -V //查看nginx的版本信息 /usr/local/webserver/nginx/sbin/nginx -h //查看nginx的幫助信息 /usr/local/webserver/nginx/sbin/nginx //啓動nginx 打開瀏覽器,輸入linux的ip。能夠看到歡迎的信息。 /usr/local/webserver/nginx/sbin/nginx -s stop //關閉nginx /usr/local/webserver/nginx/sbin/nginx //從新啓動,以便後續操做。
5.一、 解決mysql的安裝依賴
cmake 用來編譯mysql,因此要先下載cmake。
ncurses 和 ncurses-devel 是mysql的字符終端處理庫。
yum -y install cmake ncurses ncurses-devel
下載文後網盤中的mysql-5.6.24.tar.gz 文件至 /usr/local/webserver/source
tar -xf mysql-5.6.24.tar.gz // 解壓mysql cd /usr/local/webserver/source/mysql-5.6.24 查看編譯選項:http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html。
cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql \ -DMYSQL_DATADIR=/usr/local/webserver/mysql/data \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \ -DMYSQL_TCP_PORT=3306 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci
如下爲編譯選項解釋
cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql \ //mysql的安裝路徑 -DMYSQL_DATADIR=/usr/local/webserver/mysql/data \ //mysql的表數據存儲路徑 -DWITH_MYISAM_STORAGE_ENGINE=1 \ //裝載MYISAM存儲引擎。注:mysql的存儲引擎是插件化的。須要按需加載。 -DWITH_INNOBASE_STORAGE_ENGINE=1 \ //裝載INNODB存儲引擎。 -DWITH_MEMORY_STORAGE_ENGINE=1 \ // 裝載 memory引擎,該引擎並不經常使用。 -DWITH_READLINE=1 \ // 不知道這是什麼意思。 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \ //mysql 的sock文件路徑。 -DMYSQL_TCP_PORT=3306 \ //mysql的監聽端口,默認3306. -DENABLED_LOCAL_INFILE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ //默認的字符集爲utf8 -DDEFAULT_COLLATION=utf8_general_ci 執行編譯: make && make install
我這裏用單核的服務器使用了整整20分鐘,虛擬機可能要30分鐘以上。耐心等待,不要執行其餘操做,此時cpu處於99%的滿載狀態。
/usr/local/webserver/mysql/scripts ./scripts/mysql_install_db \ --basedir=/usr/local/webserver/mysql \ --datadir=/usr/local/webserver/mysql/data \ --user=mysql
設置開機啓動:
/usr/local/webserver/mysql/support-files cp ./mysql.server /etc/init.d/mysql //複製到系統自啓動目錄。 chkconfig mysql on //設置開機啓動 service mysql start //啓動MySQL PATH=/usr/local/webserver/mysql/bin/:$PATH //將mysql命令設置到全局命令路徑中 export PATH //將PATH設置爲全局變量 source /etc/profile //從新載入系統配置 5.6 測試mysql mysql -u root set password = password('密碼') //設置密碼 exit //退出
//以後的測試就不講了。
6.一、解決環境依賴
yum -y install libxml2 libxml2-devel yum -y install libcurl libcurl-devel
下載文後所示網盤中的 php-5.6.24.tar.gz 文件至/usr/local/webserver/source
cd /usr/local/webserver/source tar -xf php-5.6.24.tar.gz cd /usr/local/webserver/source/php-5.6.24 ./configure --help //查看下配置項
配置項以下:
./configure \ --prefix=/usr/local/webserver/php \ --enable-fpm \ --with-config-file-path=/usr/local/webserver/php/conf \ --with-zlib \ --with-curl \ --enable-mysqlnd \ --enable-pdo \ --enable-mbstring \ --with-mysql=/usr/local/webserver/mysql \ --with-pdo-mysql=mysqlnd \ --with-openssl-dir \ --disable-fileinfo make && make install
cd /usr/local/webserver/php mkdir conf /usr/local/webserver/source/php-5.6.24/php.ini-development ./conf/php.ini //複製配置 cd /usr/local/webserver/php/etc mv php-fpm.conf.default php-fpm.conf ls /usr/local/webserver/source/php-5.6.24/sapi/fpm/php-fpm /usr/local/bin/ php-fpm -h //查看php的配置信息 php-fpm -m //查看加載了那些模塊
修改nginx配置,使其支持php後綴的文件。
//約52行 65行。
location / { root html; index index.php index.html index.htm; } location ~* \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; }
修改php的配置,修改時間選項。
//約925行 date.timezone = Asia/Shanghai //你不在上海也填上海。這個指的是時區。
ln -s /usr/local/webserver/nginx/sbin/nginx /usr/local/bin/ ln -s /usr/local/webserver/php/sbin/php-fpm /usr/local/bin/ cd / 執行 nginx 執行 php-fpm cd /usr/local/webserver/nginx/html/ mv index.html index.php 寫一個phpinfo(); 的函數。去瀏覽器看下效果。
以上,已經將nginx 、php 、mysql 三者結合在了一塊兒。若是你已經按照上面的提示安裝成功,那麼恭喜你,你運氣真好。實踐的過程當中,可能會遇到各類各樣的報錯,必定要詳細的看報錯的信息,根據報錯的信息去安裝相應的組件。每一個人的機器不一樣,可能報錯的類別也不同,遇到報錯的歡迎你們到評論區提問,共同研討,共同提升。
這篇文章的目的在於讓你們瞭解到nginx 、php 、mysql三者之間的組合關係。本文中沒有安裝GD庫,Reids 和 Memcache 等庫。這留在後續的文章中逐步的去講。如何讓php經過打補丁(phpize)的方式將未加的組件編譯進來。