1

質問全体を読むまで回答しないでください:)

新たに作成した DigitalOcean CentOS 6.5 (64 ビット) サーバーで、2 つの Apache 仮想ホストを作成してみまし www.example-rose.comwww.example-tulip.com。次のコマンドを発行して実行しました。

サーバー側のセットアップ

# software installation
yum install httpd mod_fcgid php-cli

# added cgi.fix_pathinfo=1 in /etc/php.ini
echo "cgi.fix_pathinfo=1" >> /etc/php.ini
echo "PHP_Fix_Pathinfo_Enable 1" >> /etc/httpd/conf.d/fcgid.conf

# added new users and groups for the two virtual sites
groupadd rose
groupadd tulip
useradd -s /bin/false -d /var/www/rose -m -g rose rose
useradd -s /bin/false -d /var/www/tulip -m -g tulip tulip
chmod 755 /var/www/rose
chmod 755 /var/www/tulip

# create new document root and make them own by respective users
mkdir -p /var/www/rose/web
chown rose:rose /var/www/rose/web
mkdir -p /var/www/tulip/web
chown tulip:tulip /var/www/tulip/web

SuEXEC を介して PHP を実行したいので、SuEXEC のラッパー スクリプトを作成する追加の手順を実行しました。

mkdir -p /var/www/php-fcgi-scripts/rose
mkdir -p /var/www/php-fcgi-scripts/tulip

# inside the wrapper, I added a file (/var/www/php-fcgi-scripts/rose/php-fcgi-starter) 
# with below content:
#!/bin/sh
PHPRC=/etc/
export PHPRC
export PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_CHILDREN=8
exec /usr/bin/php-cgi

# changed the permission
chmod 755 /var/www/php-fcgi-scripts/rose/php-fcgi-starter
chown -R rose:rose /var/www/php-fcgi-scripts/rose
# above steps are repeated for tulip as well

最後に、httpd.conf ファイルに次のコンテンツを追加して、仮想ホスティングを有効にしました。

NameVirtualHost *:80
<VirtualHost *:80>
  ServerName www.example-rose.com
  ServerAlias example-rose.com
  ServerAdmin webmaster@example-rose.com
  DocumentRoot /var/www/rose/web/
  <IfModule mod_fcgid.c>
    SuexecUserGroup rose rose
    <Directory /var/www/rose/web/>
      Options +ExecCGI
      AllowOverride All
      AddHandler fcgid-script .php
      FCGIWrapper /var/www/php-fcgi-scripts/rose/php-fcgi-starter .php
      Order allow,deny
      Allow from all
    </Directory>
  </IfModule>
  ErrorLog /var/www/rose/error.log
  CustomLog /var/www/rose/access.log combined
  ServerSignature Off
</VirtualHost>

<VirtualHost *:80>
... similar lines for the second virtual host (Tulip). Cutting short ...
</VirtualHost>

サーバーを再起動し、次の内容の index.php ファイルを web ディレクトリに配置しました<?php phpinfo(); ?>

ローカル マシン

仮想ホストをテストするために、次のコマンドを使用してローカル マシンから発行しました。curl

$> curl -v -H "www.example-rose.com" 162.*.35.155/index.php
*   Trying 162.*.35.155...
* Connected to 162.*.35.155 port 80 (#0)
> GET /index.php HTTP/1.1
> User-Agent: curl/7.30.0
> Host: www.example-rose.com
> Accept: */*
> 
* Empty reply from server
* Connection #0 to host 162.*.35.155 left intact
curl: (52) Empty reply from server

(ドメインのエントリをcurl作成した後)ではなく、Web ブラウザーからアクセスしようとすると、空白のページが表示されます。/etc/hostsサーバーに Apache アクセス ログまたはエラー ログが生成されません。(php ファイルの代わりに)静的ファイルを配置すると、問題なく静的ファイルにアクセスできます。しかし、.php ファイルは機能しません。

でも

DigitalOcean のサーバー自体(または DigitalOcean のネットワーク内の他のサーバー) からアクセスしようとすると、予想される index.php が問題なく結果として表示さcurlれます。しかし、DO のネットワークの外から試してみるとうまくいきません。phpinfo()

私はあらゆる種類の一般的なトラブルシューティング (インストール、再インストール、アクセス許可の確認、conf ファイルの何度も確認など) を行いましたが、今は頭がいっぱいです。次は何?

質問全体を読むまで回答しないでください:)

4

0 に答える 0