centos7搭建LAMP


 

 

 

 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"

image.png

        設置時區:vim /usr/local/php/etc/php.ini

        image.png

        (2)禁用一些php內置的危險函數

     image.png

        (3)配置日志error_log

            打開php配置文件php.ini:vim /usr/local/php/etc/php.ini

        # 修改一下的設置項 log_errors = On error_log = /var/log/php/php_errors.log error_reporting = E_ALL & ~E_NOTICE display_errors = Off
 

            然后創建錯誤日志存放目錄,並修改權限

            image.png

        (4)配置open_basedir

            open_basedir的作用是將網站限定在指定的目錄里,萬一一個站點被黑了,也不會影響其他的站點。

            如果直接在php配置文件設置open_basedir參數的,就是所有的站點都定義在一起了,起不到open_basedir的作用。

            下面介紹在每個站點的獨立虛擬主機上配置open_absedir:

            image.png

        (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

                報錯:image.png

                安裝:yum install -y autoconf

            ④編譯安裝 三部曲:./configure    make   make install 

        ./configure --with-php-config=/usr/local/php/bin/php-config 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM