常常都會想要練習 Linux 的東西,雖然以前就有 VM 的軟體,可是佈署起來也不算太方便,自從有 Vagrant 這種快速佈署的軟體之後,大大增進玩 Linux 的方便性,今天就來嘗試紀錄一下在一個乾淨的 Ubuntu 不透過懶人包將 LEMP 架起來的過程,今天的目標是安裝 PHP、Nginx、MySQL,還有一些常用的 PHP 套件,像是 XDEBUG、curl 之類的。
Vagrant
# 初始化 Vagrant
vagrant init ubuntu/trusty32
# 打開 Vagrantfile 修改下面內容
# IP 可以隨自己喜歡定義,因為只是要測試成功與否,所以記憶體我只開到 512
config.vm.network "private_network", ip: "10.10.10.6"
config.vm.provider "virtualbox" do |vb|
vb.memory = "512"
end
# 利用你的 ssh 軟體登入 10.10.10.6,順利登入的話我們就可以開始進行安裝步驟
# 先進行一個更新既有軟體的動作
sudo aptitude update
sudo aptitude upgrade
Nginx
sudo aptitude install nginx # 假如安裝成功,可以在瀏覽器輸入 10.10.10.6,如果看到 Nginx 歡迎畫面表示你安裝順利
MySQL
sudo aptitude install mysql-server # 安裝無誤後,來測試一下 mysql -V # 看到以下訊息 mysql Ver 14.14 Distrib 5.5.41, for debian-linux-gnu (i686) using readline 6.3 # 連結看一下 mysql -u root -p mysql> show database; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.00 sec)
PHP
sudo aptitude intall php5-cli
sudo aptitude intall php5-fpm
# 安裝好 check 一下
php -v
PHP 5.5.9-1ubuntu4.5 (cli) (built: Oct 29 2014 11:59:42)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies
with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
# 修改 ngnix 預設網站 config
sudo vim /etc/nginx/sites-available/default
root /var/www/html;
index.php index index.html index.htm;
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
# 安裝 mysql 套件
sudo aptitude install php5-mysql
# 開個資料表查看 PHP 到 MySQL 的存取
mysql -u root -p
create database `test`;
use `test`;
CREATE TABLE `test` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(10) NOT NULL
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_unicode_ci;
INSERT INTO `test` (`name`) VALUES ('測試中文');
// 編輯 vim /var/www/html/index.php
<?php
$dsn = 'mysql:host=localhost;dbname=test;charset=utf8';
try {
$dbh = new PDO($dsn, 'root', 123456);
$sql = "SELECT * FROM `test`";
$stmt = $dbh->prepare($sql);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<pre>'; var_dump($rows); echo '</pre>'; die();
} catch (PDOException $e) {
var_dump($e->getMessage());
}
順利看到內容
array(1) {
[0]=>
array(2) {
["id"]=>
string(1) "1"
["name"]=>
string(12) "測試中文"
}
}
安裝 xdebug
sudo aptitude -y install php5-dev php5-pear sudo pecl install xdebug # 有的 linux 版本會遇到問題,可以改成 sudo pecl install -Z xdebug find / -name 'xdebug.so' 2> /dev/null # 出現 /usr/lib/php5/20121212+lfs/xdebug.so # 編輯你的 php.ini 位置,因為我們使用了 php5-fpm,所以位置會在 /etc/php5/fpm/php.ini # 加入 extension 位置 zend_extension="/usr/lib/php5/20121212+lfs/xdebug.so" # 重啟 nginx 跟 fpm service service nginx restart service php5-fpm nginx restart
參考網站
Install LEMP (Linux, Nginx, MySQL and PHP) Stack on Ubuntu Linux 14.04 LTS
沒有留言:
張貼留言