翻譯自:https://www.howtoforge.com/tutorial/install-apache-with-php-and-mysql-on-ubuntu-16-04-lamp/php
昨天在虛擬機裏面安裝ubuntu server ,而後配置php開發環境,參考了這篇文章,一次性把全部的東西都安裝配置好了,因此想把這篇文章記錄下來。但願可以幫助到初學者一次性搞定這些配置(避免糾結),而後就能夠愉快地編程了,嘿嘿。html
如下是我翻譯的內容,徹底對照原文,沒有本身改動的部分(由於原文已經很完美了):mysql
LAMP 是 Linux,Apache,MySQL,PHP的縮寫。本文教你如何在 ubuntu 16.04(Xenial Xerus) server 上安裝 Apache2,PHP7(mod_php)和MySQL。此外,還將安裝 PHPMyAdmin 工具用於管理 MySQL。web
本文中,我使用 server1.example.com 做爲主機名,IP爲:192.168.1.100。你若是跟我不一樣,在相應的地方替換就好了。sql
我推薦使用 minimal Ubuntu server 做爲本文操做的基礎。shell
我在root權限下運行全部的命令,因此確保你使用的是root帳戶:數據庫
sudo su
我安裝的是 MariaDB 而不是 MySQL。MariaDB 是 MySQL 的做者 Monty Widenius 所維護的 MySQL 分支版本。MariaDB 兼容 MySQL,而且增長了功能,提升了性能。運行下面的命令來安裝 MariaDB-server 和 client:apache
apt-get install mariadb-server mariadb-client
而後設置 MariaDB 的 root 密碼:編程
mysql_secure_installation
而後,出現一些提示,按照紅色提示來操做就好了:ubuntu
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 能夠直接從 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 和 Apache PHP 模塊:
apt-get install php7.0 libapache2-mod-php7.0
而後重啓 Apache
systemctl restart apache2
默認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,能夠安裝 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 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
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能夠操做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 以後,輸入用戶名和密碼