LAMP是Linux Apache MySQL PHP的縮寫,即把Apache、MySQL以及PHP安裝在Linux系統上,組成一個環境來運行PHP的腳本語言。Apache是最常用的Web服務軟件,而MySQL是比較小型的數據庫軟件。三個角色可以安裝在一台機器上,也可以分開(但httpd和php要在一起的)
步驟一、安裝Mysql
1)下載源碼包到/usr/local/src/目錄
[root@localhost lamp]# wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
2)解壓源碼包
[root@localhost lamp]# tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
3)檢測/usr/local/目錄下有沒有mysql這個文件夾,有的話修改名字為mysql_old
[root@localhost lamp]# [ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_old
4)移動解壓后的mysql到/usr/local目錄下
[root@localhost lamp]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql
5)創建MySQL用戶,啟動MySQL需要該用戶
[root@localhost lamp]# useradd -s /sbin/nologin mysql
6)創建MySQL數據庫文件存放目錄/data/mysql並更改權限
[root@localhost ~]# mkdir -p /data/mysql [root@localhost ~]# chown -R mysql:mysql /data/mysql/
7)進入/usr/local/mysql目錄,初始化
[root@localhost ~]# cd /usr/local/mysql/ [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
報錯
解決方法:yum install perl gcc kernel-devl
報錯
解決方法:yum install -y perl-Module-Install
報錯
解決方法:yum install libaio* -y
8)安裝完成后執行echo $? 輸出結果為0,則表示初始化成功
9)復制配置文件:cp support-files/my-default.cnf /etc/my.cnf; (因為系統默認有my.cnf文件,所以會提示覆蓋)
[root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf
10)修改配置文件:vim /etc/my.cnf
11)復制啟動腳本,並修改其屬性
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql]# chmod 755 /etc/init.d/mysqld
12)修改啟動腳本:vim /etc/init.d/mysqld
13)啟動服務
[root@localhost mysql]# chkconfig --add mysqld 加入系統服務列表 [root@localhost mysql]# chkconfig mysqld on 設置開機自啟 [root@localhost mysql]# service mysqld start 啟動服務
ln -s /usr/local/mysql/bin/mysql /usr/bin
14)檢查是否啟動成功
[root@localhost mysql]# ps aux | grep mysqld
步驟二、安裝Apache
1)下載源碼包與兩個必須的依賴包
[root@localhost lamp]# wget http://mirrors.sohu.com/apache/httpd-2.4.37.tar.gz [root@localhost lamp]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.5.tar.gz [root@localhost lamp]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz
2)解壓三個包
[root@localhost lamp]# tar -zxvf apr-1.6.5.tar.gz [root@localhost lamp]# tar -zxvf apr-util-1.6.1.tar.gz [root@localhost lamp]# tar -zxvf httpd-2.4.37.tar.gz
3)安裝apr(友情提示:安裝軟件時,最好每執行一步,就echo $?看看是否執行成功!)
[root@localhost apr-1.6.5]# cd apr-1.6.5 [root@localhost apr-1.6.5]# ./configure --prefix=/usr/local/apr [root@localhost apr-1.6.5]# make &&make install [root@localhost apr-1.6.5]# echo $? 0
4)安裝apr-util
報錯
解決方法:yum install -y expat-devel
[root@localhost apr-util-1.6.1]# cd apr-util-1.6.1 [root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr [root@localhost apr-util-1.6.1]# make && make install
5)安裝httpd
報錯
解決方法:yum install -y pcre pcre-devel
報錯
說明:缺少了xml相關的庫,需要安裝libxml2-devel包。直接安裝並不能解決問題,因為httpd調用的apr-util已經安裝好了,但是apr-util並沒有libxml2-devel包支持
解決辦法
# 安裝libxml2-devel包 yum install -y libxml2-devel # 刪除apr-util安裝目錄,並重新編譯安裝 rm -rf /usr/local/apr-util cd /usr/local/src/apr-util-1.6.1 # 這一步很重要,必須清除之前配置時的緩存 make clean ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr make && make install # 重新編譯安裝httpd cd /usr/local/src/httpd-2.4.29 # 同樣要清理之前的緩存十分重要 make clean
重新安裝httpd
[root@localhost httpd-2.4.37]# cd httpd-2.4.37 [root@localhost httpd-2.4.37]# ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most [root@localhost httpd-2.4.37]# make && make install [root@localhost httpd-2.4.37]# echo $? 0
步驟三、安裝PHP
1)下載源碼包
[root@localhost lamp]# wget http://mirrors.sohu.com/php/php-5.6.9.tar.gz
2)解壓源碼包
[root@localhost lamp]# tar -zxvf php-5.6.9.tar.gz
3)編譯安裝
[root@localhost php-5.6.9]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif
[root@localhost php-5.6.9]# make && make install
報錯
解決方法
:yum install -y openssl openssl-devel
報錯
解決方法:yum install -y bzip2 bzip2-devel
報錯
解決方法:yum install -y libjpeg libjpeg-devel
報錯
解決方法:yum install -y libpng libpng-devel
報錯
解決方法:yum install -y lfreetype freetype-devel
報錯
解決方法:yum install -y epel-release yum install -y libmcrypt-devel 兩個必須分開裝,因為centosyum源里沒有libmcrypt-devel這個包
4)復制配置文件
[root@localhost php-5.6.9]# cp php.ini-production /usr/local/php/etc/php.ini
步驟四、讓http支持php
1)修改httpd主配置文件/usr/local/apache2.4/conf/httpd.conf
搜索ServerName,刪除前面的 '#'
找到<Directory />,修改成
在AddType增加一行:
定義默認首頁
步驟五、測試LAMP是否成功
1)測試配置文件是否正確
[root@localhost conf]# /usr/local/apache2.4/bin/apachectl -t Syntax OK
2)啟動服務
[root@localhost conf]# /usr/local/apache2.4/bin/apachectl start
3)客戶端測試是否成功解析php代碼
HTTP配置:
(1)配置虛擬主機
編輯httpd配置文件httpd.conf:vim /usr/local/apache2.4/conf/httpd.conf
在末尾加入
#Virtual hosts Include conf/extra/httpd-vhosts.conf 導入這個配置文件
然后編輯虛擬主機的配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80> DocumentRoot "/usr/local/apache2.4/htdocs/aa" //定義網站的位置 ServerName defaule.com //網站的域名 ServerAlias www.defaule.com ErrorLog "logs/dummy-host.example.com-error_log" //錯誤日志 CustomLog "logs/dummy-host.example.com-access_log" common //訪問日志 </VirtualHost>
這樣一個<VirtualHost>***</VirtualHost>就是一個虛擬主機了
重啟httpd服務
[root@localhost aa]# /usr/local/apache2.4/bin/apachectl restart
創建虛擬網站,客戶端測試訪問
2)配置用戶認證
編輯httpd虛擬主機配置文件httpd-vhosts.conf:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
接下來就是創建密碼文件:(-c為create, -m為MD5加密;第二次就不用-c了,否則會清空密碼文件)
[root@localhost aa]# /usr/local/apache2.4/bin/htpasswd -cm /usr/local/apache2.4/htdocs/aa/.htpasswd admin New password: Re-type new password: Adding password for user admin
[root@localhost aa]# /usr/local/apache2.4/bin/apachectl -t 檢測配置文件是否正確
Syntax OK
[root@localhost aa]# /usr/local/apache2.4/bin/apachectl graceful 動態加載配置文件
3)配置域名跳轉
編輯httpd虛擬主機配置文件httpd-vhosts.conf:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
在<VirtualHost>站點加入下面的代碼
編輯httpd配置文件httpd.conf:vim /usr/local/apache2.4/conf/httpd.conf
打開rewrite模塊
4)配置訪問日志
定義訪問日志的格式在主配置文件httpd.conf
這里為日志的輸出格式
再修改虛擬主機配置文件
修改之后日志會詳細很多
日志過濾掉圖片、js、css等靜態文件,節約磁盤容量,並且做日志切割,一天一個文件! 在站點的配置文件vhost中加入過濾代碼:
5)配置靜態文件過期時間
在虛擬主機配置文件中添加
PHP配置:
(1)查看php配置文件所在路徑:/usr/local/php/bin/php -i |grep -i "loaded configaration file"
設置時區:vim /usr/local/php/etc/php.ini
(2)禁用一些php內置的危險函數
(3)配置日志error_log
打開php配置文件php.ini:vim /usr/local/php/etc/php.ini
然后創建錯誤日志存放目錄,並修改權限
(4)配置open_basedir
open_basedir的作用是將網站限定在指定的目錄里,萬一一個站點被黑了,也不會影響其他的站點。
如果直接在php配置文件設置open_basedir參數的,就是所有的站點都定義在一起了,起不到open_basedir的作用。
下面介紹在每個站點的獨立虛擬主機上配置open_absedir:
(5)PHP動態擴展模塊安裝
查看php加載了哪些功能模塊:
/usr/local/php/bin/php -m
安裝php的redis擴展模塊:
①下載模塊:wget https://codeload.github.com/phpredis/phpredis/zip/develop
②重命名:mv develop phpredis-develop.zip; 解壓:unzip phpredis-develop.zip
③生成可執行文件:cd phpredis-develop/ ; /usr/local/php/bin/phpize
報錯:
安裝:yum install -y autoconf
④編譯安裝 三部曲:./configure make make install
⑤查看安裝的模塊文件:ls /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
⑥編輯php配置文件:echo "extension = redis.so" >> /usr/local/php/etc/php.ini
⑦檢驗:/usr/local/php/bin/php -m|grep redis