WSL-Ubuntu安裝LAMP包含Composer
先決條件
可以先參考”WIN10安裝WSL”
說明
LAMP代表Linux操作系統和ApacheWeb服務器, 數據存儲MySQL數據庫中及內容由PHP處理
Composer是PHP中的依賴管理工具
安裝Apache並啟動
更新
sudo apt update
sudo apt upgrade
安裝Apache
sudo apt install apache2
停止/開始/重啟
sudo service apache2 stop
sudo service apache2 start
sudo service apache2 restart
使用瀏覽器輸入” http://localhost”測試
http://localhost
安裝測試MariaDB(MySQL)
在WSL中輸入以下命令已安裝MariaDB
sudo apt install mariadb-server
停止/開始/重啟
sudo service mysql stop
sudo service mysql start
sudo service mysql restart
安裝完成後, 建議運行MariaDB預裝的安全腳本. 此腳本將刪除一些不安全的默認設置並鎖定對數據庫系統的訪問. 運行以下命令啟動腳本:
sudo mysql_secure_installation
將需要如下設定:
“Enter current password for root:”請求輸入root密碼, 如下圖:
尚未設置root密碼將為空, 所以按"Enter"既可.
“Set root password?”詢問是否設定ROOT密碼, 如下圖:
“y”需要設定, 並且輸入兩次. 其他都是輸入”y”即可, 如下
“Remove anonymous users?” 是否刪除匿名使用者
“Disallow root login remotely?” 是否禁止遠端根登錄
“Remove test database and access to it?” 是否刪除測試資料庫並訪問它
“Reload privilege tables now?” 是否立即重新載入許可權表, 所有更改將立即生效.
完成後, 測試是否可以輸入"sudo mysql"登錄到MySQL控制台
sudo mysql
MySQL控制台->查看使用者
select user from mysql.user;
MySQL控制台->創建使用者(test)密碼為(test)
GRANT ALL PRIVILEGES ON *.* TO 'test'@localhost IDENTIFIED BY 'test';
Win可以使用Navicat連接測試, 如下操作
連接->MariaDB->SSH->設定SSH連接資料 主機(localhost)/帳戶/密碼
一般->設定MySQL連接資料 主機(localhost)/帳戶(test)/密碼(test)
退出 MySQL 控制台, 輸入"exit"
exit
安裝測試 PHP
安裝PHP
Apache提供內容, MySQL存儲和管理數據. PHP是設置的組件, 將處理代碼向最終用戶顯示動態內容. 除了php包之外, 還需要php-mysql, 允許PHP與MySQL數據庫進行通信的PHP模塊. libapache2-mod-php使 Apache處理PHP文件. 核心PHP包作為依賴自動安裝.
在WSL中輸入以下命令:
sudo apt install php libapache2-mod-php php-mysql php-xml
查看安裝版本:
php -v
安裝PHP更新版
安裝software-properties-common軟體管理器
sudo apt install software-properties-common
增加ondrej/php PPA, 它能讓你選擇更多php版本
sudo add-apt-repository ppa:ondrej/php
更新
sudo apt update
sudo apt upgrade
安裝PHP8.1
sudo apt install php8.1 libapache2-mod-php8.1 php8.1-mysql php8.1-xml
sudo apt install php8.1-common php8.1-opcache php8.1-mcrypt php8.1-cli
php8.1-gd php8.1-curl php8.1-mbstring
創建虛擬主機
Ubuntu的Apache默認啟用服務器塊目錄/var/www/html. 不修改 /var/www/html, 在/var/www中創建phpdomain目錄並保留/var/www/html.
創建目錄, WSL中輸入以下命令:
sudo mkdir /var/www/phpdomain
分配目錄的所有權給當前系統用戶(userwsl)
sudo chown -R userwsl:userwsl /var/www/phpdomain
Apache的sites-available目錄中創建一個新文件/etc/apache2/sites-available/phpdomain.conf(需要root)
<VirtualHost *:80>
ServerName phpdomain
ServerAlias www.phpdomain
ServerAdmin webmaster@localhost
DocumentRoot /var/www/phpdomain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
通過VirtualHost配置, 告訴Apache使用/var/www/phpdomain為 Web根目錄來為phpdomain提供服務. 沒有功能變數名稱下測試Apache, 可以開頭添加#刪除或註釋掉ServerName/ServerAlias.
啟用(phpdomain)/禁用(000-default) 虛擬主機:
sudo a2ensite phpdomain
sudo a2dissite 000-default
設定檔語法錯誤檢查
sudo apache2ctl configtest
測試PHP顯示
創建info.php文件” /var/www/your_domain/info.php”
<?php
phpinfo();
瀏覽器訪問"http://localhost/info.php"
測試PHP與MySQL數據庫
開啟MySQL
sudo mysql
創建新數據庫
CREATE DATABASE test_database;
創建 test_user 新用戶
只允許本機登錄host=localhost
允許遠端主機登陸則host=%
CREATE USER 'test_user'@'%' IDENTIFIED BY 'test';
授予該用戶test_database數據庫的權限, 同時防止該用戶在服務器上創建或修改其他數據庫
GRANT ALL ON test_database.* TO 'test_user'@'%';
退出MySQL
exit
再次登錄MySQL
mysql -u test_user -p
確認可以訪問 test_database 數據庫
SHOW DATABASES;
創建 test_list測試表
CREATE TABLE test_database.test_list (
item_id INT AUTO_INCREMENT,
content VARCHAR(255),
PRIMARY KEY(item_id)
);
測試表插入內容
INSERT INTO test_database.test_list (content) VALUES ("test 1 data");
INSERT INTO test_database.test_list (content) VALUES ("test 2 data");
INSERT INTO test_database.test_list (content) VALUES ("test 3 data");
INSERT INTO test_database.test_list (content) VALUES ("test data end");
查看數據
SELECT * FROM test_database.test_list;
退出MySQL
exit
創建一個PHP文件” /var/www/phpdomain/testmysql.php”
<?php
$user = "test_user";
$password = "test";
$database = "test_database";
$table = "test_list";
try {
$db = new PDO("mysql:host=localhost;dbname=$database", $user, $password);
echo "<h2>TODO</h2><ol>";
foreach($db->query("SELECT content FROM $table") as $row) {
echo "<li>" . $row['content'] . "</li>";
}
echo "</ol>";
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
瀏覽器訪問"localhost/testmysql.php"
安裝Composer
在想要安裝的路徑下, 按照以下命令安裝程序
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
# 下載安裝程序到當前目錄
php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
# 驗證安裝程序 SHA-384, 您也可以在此處進行交叉檢查
php composer-setup.php
# 運行安裝程序
php -r "unlink('composer-setup.php');"
# 刪除安裝程序
將 composer.phar 移動到路徑中的目錄
mv composer.phar /usr/local/bin/composer
如果完成, 可以任意路徑下查看版本
composer --version
阿里雲Composer全量鏡像
網址: https://developer.aliyun.com/composer
所有项目都会使用该镜像地址:
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
取消配置:
composer config -g --unset repos.packagist
安裝PHP相關
Linux 安裝unzip命令
sudo apt install unzip
本篇完成>.<