翻譯自:https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-on-ubuntu-16-04-lamp/
昨天在虛擬機里面安裝ubuntu server ,然后配置php開發環境,參考了這篇文章,一次性把所有的東西都安裝配置好了,所以想把這篇文章記錄下來。希望能夠幫助到初學者一次性搞定這些配置(避免糾結),然后就可以愉快地編程了,嘿嘿。
以下是我翻譯的內容,完全對照原文,沒有自己改動的部分(因為原文已經很完美了):
LAMP 是 Linux,Apache,MySQL,PHP的縮寫。本文教你如何在 ubuntu 16.04(Xenial Xerus) server 上安裝 Apache2,PHP7(mod_php)和MySQL。此外,還將安裝 PHPMyAdmin 工具用於管理 MySQL。
說明
本文中,我使用 server1.example.com 作為主機名,IP為:192.168.1.100。你如果跟我不同,在相應的地方替換就行了。
我推薦使用 minimal Ubuntu server 作為本文操作的基礎。
我在root權限下運行所有的命令,所以確保你使用的是root賬戶:
sudo su
安裝 MariaDB 作為 MySQL 的替換
我安裝的是 MariaDB 而不是 MySQL。MariaDB 是 MySQL 的作者 Monty Widenius 所維護的 MySQL 分支版本。MariaDB 兼容 MySQL,並且增加了功能,提高了性能。運行下面的命令來安裝 MariaDB-server 和 client:
apt-get install mariadb-server mariadb-client
然后設置 MariaDB 的 root 密碼:
mysql_secure_installation
然后,出現一些提示,按照紅色提示來操作就行了:
Enter current password for root (enter for none): <-- press enter Set root password? [Y/n] <-- y New password: <-- Enter the new MariaDB root password here Re-enter new password: <-- Repeat the password Remove anonymous users? [Y/n] <-- y Disallow root login remotely? [Y/n] <-- y Reload privilege tables now? [Y/n] <-- y
使用 mysql 命令測試是否能登錄 MariaDB:
mysql -u root -p
再輸入上面設置 root 密碼,就會出現如下所示:
要離開 MariaDB shell,輸入 quit 和 回車鍵就行了。
安裝 Apache 2.4
Apache 2 可以直接從 Ubuntu 包中獲取,只要這樣:
apt-get install apache2
現在打開瀏覽器,輸入 http://192.168.1.100,就能看到 Apache 2 默認頁面:
apache 默認文章根目錄是 /var/www/html,其主要配置文件為:/etc/apache2/apache2.conf。其配置系統的說明文檔在 /usr/share/doc/apache2/README.Debian.gz.
安裝 PHP 7
安裝 PHP 7 和 Apache PHP 模塊:
apt-get install php7.0 libapache2-mod-php7.0
然后重啟 Apache
systemctl restart apache2
測試 PHP 獲得一些細節信息
默認web站點的文檔根目錄是 /var/www/html ,我在該目錄創建一個info.php文件,然后在瀏覽器中訪問它。這個文件能夠顯示有關PHP安裝的詳細信息。
vim /var/www/html/info.php
輸入文件內容:
<?php
phpinfo();
改變info.php文件的所有者為 www-data 用戶和組
chown www-data:www-data /var/www/html/info.php
現在我們可以在瀏覽器中訪問 http://192.168.1.100/info.php,結果如下圖所示:
如你所看到的,PHP7.0 正在運行,從 Server API 行可以看出,它是通過 Apache 2.0 Handler 運行的,繼續向下滾動頁面,你就看見所有已經啟用的模塊。MySQL並不在其中,這是因為我們還沒有對PHP添加MySQL/MariaDB支持。
PHP 啟用 MySQL / MariaDB 支持
為了使 PHP 支持 MySQL,可以安裝 php7.0-mysql 包。同時也可以安裝其他所需要的 PHP 模塊,使用下面命令來搜索可用的 PHP 模塊:
apt-cache search php7.0
選擇一些模塊,安裝之:
apt-get -y install php7.0-mysql php7.0-curl php7.0-gd php7.0-intl php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl php7.0-mbstring php-gettext
重啟 Apache2
systemctl restart apache2
如上圖所示,PHP已經啟用了 MySQL/MariaDB 支持。
安裝 APCu PHP 緩存來加速 PHP 運行
APCu 是一個免費的 PHP opcode cacher 用來緩存和優化 PHP 中間代碼。推薦安裝它來加速PHP速度。
安裝:
apt-get install php-apcu
重啟 Apache:
systemctl restart apache2
刷新一下 http://192.168.1.100/info.php,看到 apcu 模塊:
請刪除info.php文件,它會顯示你服務器的敏感信息。運行下面的命令來刪除:
rm -f /var/www/html/info.php
啟用 Apache 的 SSL 網站支持
SSL/TLS 是一個安全層,用於加密瀏覽器與服務器之間的連接。使用下面的命令以啟用 https:// 支持
a2enmod ssl
a2ensite default-ssl
這兩行命令啟用了 ssl 模塊,並在 /etc/apache2/sites-enabled 文件夾中添加了 /etc/apache2/sites-available/default-ssl.conf 的鏈接,以將其包括到apache 配置之中。然后重啟apache來啟用新配置:
systemctl restart apache2
現在瀏覽器打開 https://192.168.1.100,看到:
你看到了一個 SSL 警告:該服務器的 SSL 證書 是 “自己頒發給自己的”,這表示瀏覽器不信任該證書,所以你必須先接受安全警告,然后才能打開apache 默認頁面:
瀏覽器地址欄URL前面的 “綠色的鎖”表明連接是經過加密的。要想解除 SSL 警告,可以從 SSL 證書頒發機構獲得一個官方簽名的SSL證書,然后替換默認自帶的證書:/etc/ssl/certs/ssl-cert-snakeoil.pem。
安裝 phpMyAdmin
通過phpMyAdmin可以操作MySQL數據庫。安裝命令:
apt-get install phpmyadmin
然后看到這些提示,按照紅色提示輸入就行了:
Web server to configure automatically: <-- Select the option: apache2 Configure database for phpmyadmin with dbconfig-common? <-- Yes MySQL application password for phpmyadmin: <-- Press enter, apt will create a random password automatically.
MariaDB 默認為root用戶啟用了“unix_socket”插件,這個插件會阻止root用戶登錄phpmyadmin和root用戶到MySQL的TCP連接。因此,使用命令禁用了它:
echo "update user set plugin='' where User='root'; flush privileges;" | mysql -u root -p mysql
然后輸入 MariaDB root 密碼。
之后,你就可以通過 http://192.168.1.100/phpmyadmin/ 來訪問:
另外,說明一些操作過程中可能會遇到的問題以及解決辦法。
(1)安裝完訪問 phpmyadmin 時,出現錯誤:The reqeusted URL /phpmyadmin was not found on this server
我的解決辦法在這里:鏈接
(2)成功打開phpmyadmin 之后,輸入用戶名和密碼