web平臺搭建-LAMP(CentOS-7) 一.準備工作 環境要求: 操作系統:CentOS7.X 64位 關閉SELinux和firewalld防火牆 源碼包:https://pan.baidu.com/s/1P2fq706H8sPeHG6-nfHUSw 提取碼:9ruw 1.安裝編譯工具gcc ...
web平臺搭建-LAMP(CentOS-7)
一.準備工作
環境要求:
操作系統:CentOS7.X 64位
關閉SELinux和firewalld防火牆
源碼包:https://pan.baidu.com/s/1P2fq706H8sPeHG6-nfHUSw
提取碼:9ruw
1.安裝編譯工具gcc、gcc-c+等
註意解決依賴關係,推薦使用 yum 安裝,若不能聯網可使用安裝光碟做為 yum 源
安裝 gcc、gcc-ct+、make等編譯工具
yum -y install gcc gcc-c++ make
關閉SELinux和firewalld
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config
拷貝源碼包,解包解壓縮
建議將 LAMP環境安裝源碼包統一存放在一個目錄下,如/lamp,可以使用解壓腳本解壓縮
vim tar.sh
#/bin/bash
ls *.tar.gz > ls.list
for tar in $(cat ls.list)
do
$(/bin/tar -zxvf $tar)
done
rm ls.list
~
源碼軟體包安裝報錯確認與解決方案
echo $? #安裝軟體過程中由於頻繁刷屏,建議在每個步驟結束後執行此命令
./configure ##此步驟報錯多是依賴關係沒解決或是編譯工具未安裝(註意關鍵詞提示)
make #此步驟多是編譯時選項參數書寫錯誤、不存在、漏寫等問題
#一般需要檢查上一個步驟:./configure_—help
註意:若遇到報錯,最簡答的辦法是,找到問題解決後重新解壓軟體,重新安裝,步驟最簡潔
二.編譯安裝
註意:每個源碼包配置編譯安裝完成後,確認安裝目錄下是否生成安裝文件(並確定目錄是否正確)建議將安裝路徑指定為[--prefix=/usr/local/軟體名]格式
1.安裝 libxml2
yum install -y libxm12-devel python-devel
cd libxml2-2.9.1
./configure --prefix=/usr/local/libxml2
make
make install
ls /usr/local/libxml2/
2.安裝libmcrypt
cd libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt/
make
make install
安裝libltdl,也在libmcrypt源碼目錄中,非新軟體
cd libltdl/
./configure --enable-ltdl-install
make
make install
3.安裝mhash
cd ../mhash-0.9.9.9
./configure
make
make install
4.安裝 mcrypt
cd libmcrypt-2.5.8
export LD_LIBRARY_PATH=/usr/local/libmcrypt/lib/:/usr/local/lib
./configure --with-libmcrypt-prefix=/usr/local/libmcrypt/
make
make install
5.安裝zlib
cd ../zlib-1.2.13
./configure
make && make install
安裝 libpng
cd ../libpng-1.2.31
./configure --prefix=/usr/local/libpng && make && make install
7.安裝jpeg6
註意:此軟體預設不會自動創建所需目錄,所以目錄必須手工建立
mkdir /usr/local/jpeg6
mkdir /usr/local/jpeg6/bin
mkdir /usr/local/jpeg6/lib
mkdir /usr/local/jpeg6/include
mkdir /usr/local/jpeg6/man/man1 -p
./configure --prefix=/usr/local/jpeg6/ \
--enable-shared \ ##建立共用庫使用的GNU的libtool
--enable-static \#建立靜態庫使用的GNU的libtool
&& make && make install
8.安裝 freetype
cd ../freetype-2.3.5
./configure --prefix=/usr/local/freetype && make && make install
9.安裝Apache
源碼包2.4.*版本中預設沒有集成apr的依賴包,所以需要提前解決依賴問
cp -a ../apr-1.7.2 ../httpd-2.4.56/srclib/apr
cp -a ../apr-util-1.6.3 ../httpd-2.4.56/srclib/apr-util
Apache 預設需要依賴 pcre 軟體,但由於 Apache 軟體版本較高,則系統預安裝的 pcre 無法使用,所以需要人為手動安裝適合版本
cd ../pcre-8.34
./configure && make &&make install
httpd 軟體安裝
yum install expat-devel
./configure --prefix=/usr/local/apache2 \
--sysconfdir=/usr/local/apache2/etc \#指定Apache配置文件保存目錄
--with-include-apr \#使用捆綁APR/APR-Util 的副本
--enable-so \ #以動態共用對象(DSO)方式編譯
--enable-deflate=shared \#啟用編小傳輸編瑪支持的模塊
--enable-expires=shard \#根據用戶的特別設定來生成失效和隱藏控制的HTTP頭信息
--enable-rewrite-shard \#啟動重寫功能的模塊
&& make && make install
啟動Apache測試
/usr/local/apache2/bin/apachectl start
netstat -tlun
#使用網路進程查看命令確認Apache是否啟動,是否開啟了80監聽埠
警告提示:發現啟動服務提示
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
解決辦法:打開主配置文件 httpd.conf
搜索 ServerName
改為ServerName localhost:80(並且去掉前面的#註釋)
驗證:通過瀏覽器輸入地址訪問:http://伺服器ip,若顯示"It works"即表明Apache正常工作
10.安裝 ncurses
yum install ncurses-devel
cd ../ncurses-5.9
./configure --with-shared --without-debug--without-ada--enable-overwrite&& make && make install
11,安裝cmake和bison
yum install cmake bison -y
12.安裝MySQL
為MySQL軟體創建運行用戶,創建為系統用戶,並限制此用戶登錄操作系統
useradd -r -s /sbin/nologin mysql
cd ../mysql-5.5.48
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 && make && make install
選項詳解:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
安裝位置
-DMYSQL_UNIX_ADDR=/tmp/mysąl.sock
指定 socket(套接字)文件位置
-DEXTRA_CHARSETS=al1
擴展字元支持
-DDEFAULT_CHARSET=ut f8
預設字元集
-DDEFAULT COLLATION=utf8_general_ci
預設字元校對
-DWITH_MYISAM_STORAGE ENGINE=1
安裝 myisam存儲引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1
安裝 innodb 存儲引擎
-DWITH MEMORY STORAGE ENGINE=1
安裝 memory 存儲引擎
-DWITH READLINE=1
支持 readline 庫
-DENABLED_LOCAL_INFILE=1
啟用載入本地數據
-DMYSQL_USER=mysql
指定 mysql 運行用戶
-DMYSQL TCP PORT-3306
指定 mysql 埠
MySQL 安裝後需要調整相應配置文件和參數才能正常運行
修改MySQL目錄的用戶歸屬
chown -R root .
chown -R mysql data/
生成配置文件,並初始化授權表
cp -a /root/lamp/mysql-5.5.48/support-files/my-medium.cnf /etc/my.cnf
複製MySQL配置文件到指定位置,覆蓋掉系統自帶文件
cd /usr/local/mysql/
./scripts/mysql_install_db --user=mysql
創建資料庫授權表,初始化資料庫,相當於安裝完操作系統後的引導設置(添加第一個用戶)
啟動MySQL服務
在/usr/local/mysql/bin 下
./mysqld_safe --user=mysql &
設定MySQL密碼
./mysqladmin -uroot password 000000
登錄MySQL
./mysql -uroot -p000000
13.安裝PHP
安裝libtool和libtool-ltdl
yum install libtool* -y
./configure --prefix=/usr/local/php/ --with-config-file-path=/usr/local/php/etc/ --with-apxs2=/usr/local/apache2/bin/apxs --with-libxml-dir=/usr/local/libxml2/ --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng/ --with-freetype-dir=/usr/local/freetype/ --with-mcrypt=/usr/local/libmcrypt/ --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap --enable-mbstring=all --enable-sockets --with-pdo-mysql=/usr/local/mysql/ --with-gd --without-pear && make && make install
選項詳解:
--with-config-file-path=/usr/local/php/etc/
指定配置文件目錄
--with-apxs2=/usr/local/apache2/bin/apxs
指定 apache 動態模塊位置
--with-libxml-dir=/usr/local/libxml2/
指定 libxml 位置
--with-jpeg-dir=/usr/local/jpeg6/
指定 jpeg 位置
--with-png-dir=/usr/local/libpng/
指定 libpng 位置
--wi th-freetype-dir=/usr/local/freetype/
指定 freetype 位置
-with-mcrypt=/usr/local/libmcrypt/
指定 libmcrypt 位置
-with-mysqli=/usr/local/mysql/bin/mysql_config
指定 mysqli 位置
with-gd
啟用 gd 庫
enable-soap
支持 soap 服務
enable-mbstring-all
支持多位元組,字元串
enable-sockets
支持套接字
with-pdo-mysql=/usr/local/mysql
啟用 mysql 的 pdo 模塊支持
without-pear
不安裝 pear(安裝 pear 需要連接互聯網)
PHP 安裝後需要調整相應配置文件和參數才能正常運行
生成 php 配置文件
mkdir /usr/local/php/etc
cp php.ini-production /usr/local/php/etc/php.ini
修改 Apache 配置文件,使其識別*.php 文件,並能通過 php 模塊調用 php 進行頁面解析
vim /usr/local/apache2/etc/httpd.conf
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
重啟 Apache 服務
/usr/local/apache2/bin/apachectl stop
/usr/local/apache2/bin/apachectl start
測試php 頁面是否能正常解析(即 apache 和 php 連通性)
vim /usr/local/apache2/htdocs/test.php
<?php
phpinfo();
?>
通過瀏覽器輸入地址訪問:http://Apache伺服器地址/test.php
14.為PHP安裝openssl模塊
yum install autoconf
cd /php-7.0.7/ext/openssl/
mv config0.m4 config.m4
/usr/local/php/bin/phpize
./configure --with-openssl --with-php-config=/usr/local/php/bin/php-config && make && make install
15,為PHP安裝memcache模塊
cd pecl-memcache-php7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config && make && make install
16.修改 php 配置文件,使其識別並調用 openssl 和 memcache 兩個模塊
vim /usr/local/php/etc/php.ini
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-zts-20151012/"
取消分號註釋,並添加以上路徑(此路徑來自於模塊安裝命令的結果)
extension="openssl.so"
extension="memcache.so"
添加以上兩個庫文件的調用
重啟 apache,刷新 phpinfo 頁面,並查看是否有兩個新增的模塊
17.安裝memcached服務
yum install libevent-devel
cd ../memcached-1.4.17
./configure --prefix=/usr/local/memcached && make &&make install
useradd -r -s /sbin/nologin memcache
添加memcache用戶,此用戶不用登錄,不設置密碼
/usr/local/memcached/bin/memcached -umemcache &
啟動memcache服務,並設置為後臺運行
netstat -an | grep 11211
檢查 memcache 是否正常啟動,並監聽了 11211 埠
18.安裝phpMyAdmin
cp -a ../phpMyAdmin-4.1.4-all-languages /usr/local/apache2/htdocs/phpmyadmin
cd /usr/local/apache2/htdocs/phpmyadmin/
cp -a config.sample.inc.php config.inc.php
vim config.inc.php
$cfg['Servers'][$i]['auth_type'] = 'http';
設置 auth type 為 http,即設置為HTTP身份認證模式(新增即可)
通過瀏覽器輸入地址訪問:http://Apache 伺服器地址/phpmyadmin/index.php
用戶名為root,密碼為MySQL設置時指定的root密碼123456
19.項目遷移:
1、把php項目拷貝到網站預設目錄下:/usr/local/apache2/htdocs/**
2、使用phpMyAdmin創建網站所需資料庫
註意事項:註意目錄許可權和歸屬,防止許可權過大或者許可權過小