LAMP環境搭建

LAMP環境搭建是PHP程序員必須掌握的一項基本技能,但是對于初學者來說,操作步驟比較繁瑣。本文是作者個人對LAMP環境搭建的整個流程的理解,在此學習分享,希望對學習PHP的同學有所幫助,歡迎指正錯誤哦~

一、 Linux安裝(CentOS)

如果是本地測試環境,則需要安裝虛擬機軟件,這里使用的是VirtualBox,下載好后根據自己需要安裝在相應的位置就好了。

CentOSISO文件下載好以后用虛擬機打開安裝。

相關文章:Windows下利用VirtualBox安裝CentOS虛擬機

二、安裝環境準備

  1. 更新yum源: yum -y update
  2. 安裝wget 和 vim: yum -y install wget vim
    wget用于下載文件,本教程下載的都是tar.gz格式的壓縮包;
    vim為編輯器
  3. 安裝編譯環境:
    yum -y install gcc gcc-c++ libxml2-devel libtool expat-devel automake autoconf make
    這里安裝了c和c++的編譯環境以及可能需要用到的庫
  4. (重要)本教程使用root用戶執行所有指令,如果使用其他用戶,某些步驟可能需要添加sudo命令才能執行;所有文件下載均在/root目錄下,請注意每一步驟執行時所在的目錄。

三、Apache 安裝

  1. apr 和 apr-util 下載安裝
    apr官網可以下載到apr和apr-util的源碼
    本教程下載的是apr-1.6.5.tar.gzapr-util-1.6.1.tar.gz
    進入root目錄:cd /root
    下載使用wget:
    wget http://mirrors.hust.edu.cn/apache/apr/apr-1.6.5.tar.gz
    wget http://mirrors.hust.edu.cn/apache/apr/apr-util-1.6.1.tar.gz

    下載完成后開始解壓并編譯安裝apr-1.6.5

    tar -zvxf apr-1.6.5.tar.gz
    cd apr-1.6.5
    ./configure --prefix=/usr/local/apr
    make && make install
    

    再安裝apr-util-1.6.1

    cd /root
    tar -zvxf apr-util-1.6.1.tar.gz
    cd apr-util-1.6.1
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    make && make install
    

除了編譯安裝方式,也可以在編譯httpd時,將apr 和apr-util解壓到httpd源碼目錄下的srclib目錄,分別命名為aprapr-util
執行httpd./configure時,將 --with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util兩個配置項改為 --with-apr-included執行

  1. pcre 下載安裝
    進入root目錄:cd /root
    pcre可以從Index of pcre下載
    wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
    下載完成后解壓編譯安裝

    tar -zvxf pcre-8.42.tar.gz
    cd pcre-8.42
    ./configure
    make && make install
    
  2. zlib 下載安裝
    進入root目錄:cd /root
    zlib官網找到下載鏈接
    wget http://www.zlib.net/zlib-1.2.11.tar.gz
    下載完成后解壓安裝

    tar -zxvf zlib-1.2.11.tar.gz
    cd zlib-1.2.11
    ./configure
    make && make install
    
  3. openssl 下載安裝
    進入root目錄:cd /root
    Index of openssl上可以下載openssl源碼包
    wget http://distfiles.macports.org/openssl/openssl-1.0.2q.tar.gz
    下載完成后解壓安裝

    tar -zxvf openssl-1.0.2q.tar.gz
    cd openssl-1.0.2q
    ./config shared zlib
    make && make install
    
  4. httpd 下載安裝
    進入root目錄:cd /root
    Apache官網上可以下載到最新版本的源碼
    下載:wget http://mirror.bit.edu.cn/apache/httpd/httpd-2.4.38.tar.gz
    解壓:tar -zvxf httpd-2.4.38.tar.gz
    解壓完成進入httpd-2.4.38目錄:cd httpd-2.4.38
    配置編譯安裝選項:
    ./configure --prefix=/usr/local/apache --with-zlib=/usr/local/zlib --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-ssl=/usr/local/ssl --enable-so --enable-dav --enable-ssl --enable-rewrite --enable-modules=most --enable-maintainer-mode
    編譯安裝:make && make install

至此apache的安裝就完成了
執行命令啟動apache /usr/local/apache/bin/apachectl start
啟動的時候可能會報錯:

httpd: Syntax error on line 134 of /usr/local/apache/conf/httpd.conf: Cannot load modules/mod_ssl.so into server: libssl.so.1.0.0: cannot open shared object file: No such file or directory

解決方法,在/etc/ld.so.conf文件中寫入openssl庫文件的搜索路徑:
echo "/usr/local/lib64" >> /etc/ld.so.conf
再使用ldconfig -v命令查看動態鏈接生效結果

如果動態鏈接之后依然不生效,檢查一下/usr/local/lib64文件夾是否存在,某些系統可能是/usr/local/lib;檢查的時候順便進lib目錄里查看libssl.so.1.0.0libcrypto.so.1.0.0是否存在,如果不存在的話需要到openssl源碼目錄下復制過來;

cd  /root/openssl-1.0.2q
cp libssl.so.1.0.0 /usr/local/lib64
cp libcrypto.so.1.0.0  /usr/local/lib64
ldconfig -v

再次執行命令啟動Apache,如果再出現以下錯誤,是httpd.conf配置的原因,暫時先不管

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

在瀏覽器輸入服務器IP地址訪問,顯示如下則安裝成功


安裝成功

若服務器無響應,有可能是防火墻80端口未開放;對于云服務器也有可能是因為沒有配置安全組規則
開放80端口:firewall-cmd --zone=public --add-port=80/tcp --permanent
重啟防火墻:systemctl restart firewalld.service

三、PHP安裝

下載php源碼,可以從php官方 https://secure.php.net/releases/找到各版本下載鏈接

進入root目錄:cd /root
開始下載:wget https://www.php.net/distributions/php-7.2.9.tar.gz

解壓:tar -zxvf php-7.2.9.tar.gz
進入目錄:cd php-7.2.9
配置安裝目錄和模塊加載等信息:
./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/php --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-mbstring

php7已經不再支持使用mysql擴展,因此配置時會出現如下提示,可忽略:

configure: WARNING: unrecognized options: --with-mysql

接下來編譯安裝:make && make install

編譯完成后使用vim新建一個測試文件:vim phpinfo.php
a鍵進入編輯模式,輸入測試代碼:

<?php echo phpinfo();?>

再按下ESC回到命令模式,輸入:wq命令后按enter鍵保存并退出
輸入/usr/local/php/bin/php phpinfo.php命令執行測試文件
返回phpinfo結果如下則php安裝成功

phpinfo

四、MySQL安裝

1.檢測是否安裝MySQL

Linux平臺上推薦使用RPM包來安裝MySQL
安裝前,我們可以檢測系統是否自帶安裝 MySQL:
rpm -qa | grep mysql
如果你系統有安裝,那可以選擇進行卸載:
普通刪除模式 :rpm -e mysql 
如果使用普通刪除命令刪除時,提示有依賴的其它文件,則用強力刪除模式:rpm -e --nodeps mysql 可以對其進行強力刪除

2.安裝MySQL

使用wget下載rpm包 wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
再依次執行以下命令用yum進行安裝

rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum -y update
yum -y install mysql-server

安裝完成后進行權限設置:
chown mysql:mysql -R /var/lib/mysql

啟動MySQL:
systemctl start mysqld
查看MySQL狀態:
systemctl status mysqld

如果我們是第一次啟動 mysql 服務,mysql 服務器首先會進行初始化的配置。

3.驗證MySQL安裝

使用 mysqladmin 工具來獲取服務器狀態:mysqladmin --version
顯示結果基于你的系統信息:

mysqladmin  Ver 8.42 Distrib 5.6.43, for Linux on x86_64

使用MySQL客戶端命令連接至MySQL服務器:mysql
出現如下界面則連接成功:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.43 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

使用exit;命令斷開連接

4.修改密碼

MySQL安裝成功后,默認root密碼為空,需要進行設置
使用命令修改root密碼:mysqladmin -u root password "12345678";
可能會提示如下安全風險,可忽略:

Warning: Using a password on the command line interface can be insecure.

輸入命令登錄MySQL mysql -uroot -p,使用該命令后會提示輸入密碼,輸入即可

登陸成功后可以使用MySQL命令對MySQL數據庫進行操作了。

5.遠程管理MySQL

如果需要遠程管理數據庫,則需要用戶有遠程訪問權限,即userhost字段的值為%

可以使用下面的命令新建一個具有全部權限的用戶 remote_admin:

GRANT ALL PRIVILEGES ON *.* TO 'remote_admin' IDENTIFIED BY '12345678' WITH GRANT OPTION;

如果還不能遠程連接,有可能是防火墻3306端口未開放

開放3306端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent
重啟防火墻:systemctl restart firewalld.service

五、配置Apache和PHP

使用vim打開Apache的配置文件:
vim /usr/local/apache/conf/httpd.conf

1.添加PHP支持:

在文件中添加一行;如果PHP版本為5.X,則需要加載PHP5的模塊

LoadModule php7_module        modules/libphp7.so

DirectoryIndex 后添加 index.php

 DirectoryIndex index.html index.php

<IfModule mime_module>下添加兩行

AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
2.修改ServerName

去掉ServerName前的#號,將其改成如下形式:

ServerName localhost
3.開啟Apache支持偽靜態

將rewrite模塊加載前的#號去掉

LoadModule rewrite_module modules/mod_rewrite.so

<Directory "/usr/local/apache/htdocs">標簽下的 AllowOverride None修改為

AllowOverride all
4.不顯示目錄結構

<Directory "/usr/local/apache/htdocs">標簽下的 Options Indexes FollowSymLinks修改為

Options  FollowSymLinks
5.修改php.ini

我們在安裝PHP的時候設置了配置文件的路徑
--with-config-file-path=/usr/local/php
但是目前/usr/local/php/路徑下并沒有php.ini文件,而在解壓目錄/root/php-7.2.9下有兩個php配置文件
分別是php.ini-developmentphp.ini-production
這兩個文件是開發環境和生產環境的默認配置,這里我們使用開發環境
使用cp命令復制:

cp /root/php-7.2.9/php.ini-development /usr/local/php/php.ini
6.驗證服務器能否解析PHP

首先重啟Apache:
/usr/local/apache/bin/apachectl restart
沒有返回任何結果,則表明重啟成功

使用管道符>新建一個測試文件
echo '<?php phpinfo();' > /usr/local/apache/htdocs/phpinfo.php

打開瀏覽器輸入地址http://IP地址/phpinfo.php
顯示phpinfo信息則配置成功

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。