PHP

此類型主機可以讓您代管動態 PHP 或靜態網頁,並可使用您所選擇的資料庫。

前置作業

您必須要有能使用 SFTP 傳輸檔案的軟體 (例如 FileZilla),或是 Git 與 SSH 用戶端軟體透過命令列的方式來推送您的程式碼。

支援版本

Simple Hosting 目前支援 PHP 7.1、7.2 與 7.3 (預設版本)。

若您想要更新至最新的版本,請參考我們的 說明頁面

一般功能

您的主機可以代管多個 PHP 網站或是靜態 HTML 網站。對於每個網站來說,都是一個新的虛擬站台。

每個站台都有自己的資料夾。透過 sFTP 將檔案上傳到資料夾後,就可以使用對應的位址存取。 每一個站台也都擁有自己的 git 儲存庫,所以您可以獨立推送與佈署程式碼。

每台主機的連線限制取決於您所選擇的主機規格,您可以隨時變更規格,提高規格來處理更多流量。主機都有內建 HTTP 的快取系統,讓您的網站能發揮最大的效能。

您同樣可以建立無上限的資料庫與資料庫帳號 (例如,每一個站台一個資料庫搭配一個使用者)。唯一的限制就是您主機的硬碟大小,若有需要您可以隨時擴充硬碟。您可以透過 SSH 的命令列或是網頁介面工具來管理資料庫。

每一台主機都有一個指定的帳號 (由系統產生) 與密碼 (建立主機時由您所設定)。這組帳號密碼會使用在以下管理主機的介面上:

  • 主機的網頁管理介面與 SSH 終端機、資料庫、日誌與檔案管理
  • 透過 sFTP 與 git+SSH 連線管理主機時

您可以使用 SSH 金鑰來取代密碼,就可以在 sFTP、git 與 SSH 登入時使用金鑰驗證。

請見下方的詳細說明。

相依套件管理

您可以使用 Simple Hosting 的 Composer 來管理套件,在您的專案內的 ../htdocs 加入 composer.jsoncomposer.lock 檔即可。

要使用 Simple Hosting 來安裝相依套件,您需要使用 Git+SSH 工作流程來佈署您的程式碼,無法使用 sFTP 上傳。

步驟:

  1. 在專案根目錄中加入 composer.phar 檔
  2. 執行 Composer 來安裝相依套件
  3. 新增 composer.jsoncomposer.lock 檔在 git 中。

4. 推送您的程式碼到 git 儲存庫 4. 使用 SSH 佈署您的程式碼

可查閱我們的 Composer 教學文件。

網站

您從管理介面所建立的每一個站台都會產生一個新的資料夾路徑。

您可以透過 sFTP 將您的檔案上傳至主機上的網站目錄。

例如一個網站的 htdocs 目錄:

/lamp0/web/vhosts/www.yourdomainname.com/htdocs/

「www.yourdomainname.com」 是您在管理介面中所看到的網站名稱。

日誌檔

您可以從控制台、sFTP 或是 SSH 終端機查閱 PHP 與 Apache 的日誌檔。

Apache 日誌檔:

error.log:包含所有 Apache 網頁伺服器相關的錯誤。如果是跟設定相關的錯誤,建議可以查閱這個檔案的訊息 (例如 .htaccess 的錯誤,或是缺少首頁設定等等)。

PHP 日誌檔

admin-error.log: 您主機的透過 admin 所執行的 PHP 管理日誌檔。 fpm.log:關於 PHP 的中斷紀錄。您可以在此處看到關於 PHP 執行序的狀況。 www-error.log:您主機一般公開的 PHP 日誌檔。

了解日誌檔

備註

日誌檔的預設時間是 UTC 格式。

Apache 日誌檔

[Thu Jun 14 12:08:45.199853 2012] [mpm_event:notice] [pid 186:tid 3557842618176] AH00489: Apache/2.4.1 (Unix) configured -- resuming normal operations
[Thu Jun 14 12:08:45.199869 2012] [core:notice] [pid 186:tid 3557842618176] AH00094: Command line: '/usr/sbin/apache2 -d /srv/data/.config/apache -f /srv/data/.config/apache/apache2.conf -D lamp0-1'
[Thu Jun 14 15:08:45.213486 2012] [mpm_event:notice] [pid 186:tid

上述日誌檔紀錄了網頁伺服器的啟動紀錄。

PHP 日誌檔

:: [08-Jun-2012 12:56:29] WARNING: [pool www] server reached max_children setting (x), consider raising it

當 PHP-FPM 的程序數量達到規格的最大值,就會出現此錯誤訊息。最大值是依照您的主機規格而定的 (S 大小為 2、M 大小為 4、L 大小為 8 …)。如果此訊息出現的太頻繁,請考慮增加您的主機規格。[pool www] 表示一般程序,[pool admin] 表示是與管理相關的日誌。

[05-Jun-2012 09:08:36] WARNING: [pool admin] 'user' directive is ignored when FPM is not running as root

此訊息並非錯誤訊息,可以忽略。

資料庫

您可以選擇三種類型的資料庫:MySQL、PostgreSQL 與 MongoDB。

您可以使用網頁管理介面 (phpMyAdmin、phpPgAdmin 或是 RockMongo) 或是透過 SSH 終端機登入後使用指令介面進行管理。

MySQL

Simple Hosting 的 PHP 規格機目前已支援 MySQL 5.7。

您可以使用 localhost 位址來連接到 MySQL 資料庫。預設的使用者是 root 並且沒有密碼。但是,您應該為您的應用程式建立一組自訂的帳號密碼。

您也可以使用 default_db 這個資料庫來進行一些測試,此資料庫在主機建立時就已一併建立。

您可以建立無數量限制的資料庫; 唯一的限制就是您的硬碟大小,您可以隨時增加硬碟大小,最大可支援 1TB。

您可以使用 SSH 終端機登入主機並且使用預設的命令 (mysqlmysqldump) 來管理資料庫,或是使用網頁的 phpMyAdmin 工具。請查閱 Simple Hosting 的 MySQL 管理工具頁面。

PHP 主機已預先安裝了一些函式庫讓您可以使用程式碼連接資料庫:mysqlmysqliPDO

以下是一個小型的 PHP 程式碼範例,讓您可以測試 Simple Hosting 主機上的資料庫連線是否正常運作:

index.php

<?php

  function test_mysql_conn() {
    $mysql_server = 'localhost';
    $mysql_user = 'root';
    $mysql_pass = '';
    $mysql_db = 'default_db';

    $conn = new mysqli($mysql_server, $mysql_user, $mysql_pass, $mysql_db);
    if ($conn->connect_error) {
      error_log("Connection to MySQL failed: " . $conn->connect_error);
      return "NOT WORKING";
    }
    return "OK";
  };

?>
<html>
  <head>
    <title>PHP MySQL on Simple Hosting</title>
  </head>
  <body>
    <p>MySQL connection: <?php echo test_mysql_conn(); ?>.</p>
  </body>
</html>

PostgreSQL

Simple Hosting 上的 PHP 主機可以使用 PostgreSQL 9.4 的版本。

您可以透過 Simple Hosting 上的 localhost 位址與 5432 埠,連接到 PostgreSQL 。

您可以使用 postgres 命令,預設的 hosting-db 使用者名稱,不需要密碼就可以連接資料庫,然而我們建議您為您的應用程式自訂獨立的帳號密碼。

您可以建立無上限的使用者與資料庫,唯一的限制是您的硬碟大小,您可以隨時擴充硬碟大小,最高可到 1TB。

您可以使用 SSH 終端機登入後使用命令列工具 (psql、pg_dump 等) 進行資料庫管理,或是從控制台中使用 phpPgAdmin。請查閱 Simple Hosting 上的 PostgreSQL 其他文件來了解更多。

PHP 主機已經有預先安裝了函式庫讓您的程式可以連線到資料庫:php-postgresqlPDO

下方的小型 PHP 程式碼可以測試 Simple Hosting 主機的資料庫連線是否正常運作:

index.php

<?php

  function test_pg_conn() {
    $pg_conn_string = "host='localhost' user='hosting-db' dbname='postgres'";
    $conn = pg_connect($pg_conn_string);
    $conn_status = pg_connection_status($conn);
    if ($conn_status === PGSQL_CONNECTION_OK) {
      return "OK";
    } else {
      error_log("Connection to PostgreSQL failed: " . $conn_status);
      return "NOT WORKING";
    };
  };

?>
<html>
  <head>
    <title>PHP PostgreSQL on Simple Hosting</title>
  </head>
  <body>
    <p>PostgreSQL connection: <?php echo test_pg_conn(); ?>.</p>
  </body>
</html>

MongoDB

Simple Hosting PHP 主機目前支援 MongoDB 3.6 的版本。

您可以使用 localhost 的位址與 27017 埠來連接 MongoDB 資料庫。

預設不需要使用者帳號與密碼,但您應該為您的應用程式自訂獨立的帳號密碼。

您可以建立無上限的使用者與資料庫,唯一的限制是您的硬碟大小,您可以隨時擴充硬碟,最高可到 1TB。

您可以透過 SSH 終端機登入主機後,使用 mongo 的指令來管理資料庫,或是透過控制台的 Adminer 網頁介面。

您將需要安裝 php-mongodb 函式庫來讓您的程式連線到資料庫。

建議您使用 Composer,新增 mongodb/mongodb ^1.0.0 套件相依,並且使用 git+ssh 進行佈署。

下方的小型程式碼 (PHP 5.6) 可以讓您測試 Simple Hosting 上資料庫連線是否正常:

composer.json

{
  "require": {
    "mongodb/mongodb": "^1.0.0"
  }
}

index.php

<?php

  require 'vendor/autoload.php';

  function test_mongo_conn() {
    $mongo_url = 'mongodb://localhost:27017';
    $mongo_conn = new MongoDB\Client($mongo_url);
    if ($mongo_conn) {
      return "OK";
    } else {
      return "NOT WORKING";
    };
  };

?>
<html>
  <head>
    <title>PHP 5.6 MongoDB on Simple Hosting</title>
  </head>
  <body>
    <p>MongoDB connection: <?php echo test_mongo_conn(); ?>.</p>
  </body>
</html>