何となくできるようになった気がする。気がするだけ。もっと簡単にならないものかね・・。わからないなりにもう一度勉強しておく。ちなみに、当然新しいUbuntu Server 10.04 LTS なVM を作るところから始まる。この課題だけで何台目だろ・・。
スポンサードリンク
環境の準備
$ sudo loadkeys jp $ sudo apt-get install ssh $ sudo sed -i".bak" -e 's/\/\/us.archive.ubuntu.com/\/\/ftp.jaist.ac.jp/g' /etc/apt/sources.list $ sudo apt-get update $ sudo apt-get upgrade -y $ sudo apt-get install vim -y
インストール
$ sudo ln -s /usr/bin/perl /usr/local/bin/perl $ sudo apt-get install apache2 apache2-suexec-custom php5 libapache2-mod-suphp php5-mysql mysql-server $ sudo a2dismod php5 $ sudo a2enmod suphp $ sudo a2enmod suexec $ sudo a2enmod actions $ sudo a2enmod userdir $ sudo a2enmod rewrite $ sudo /etc/init.d/apache2 restart
userdir.conf
$ sudo vi /etc/apache2/mods-available/userdir.conf
変更前
<Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
変更後
<Directory /home/*/public_html> AllowOverride FileInfo AuthConfig Limit Indexes Options MultiViews -Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
※ExecCGI の追加とIndexes にマイナス記号を付加
再起動
$ sudo /etc/init.d/apache2 restart
suExec
※後述参照
.cgi を有効化
$ sudo vi /etc/apache2/mods-enabled/mime.conf
変更前
#AddHandler cgi-script .cgi
変更後
AddHandler cgi-script .cgi
suExec の設定
$ sudo vi /etc/apache2/suexec/www-data
行頭に次を追加
/home public_html
→ pc.casey.jp » /etc/apache2/suexec/www-data の書き方
再起動
$ sudo /etc/init.d/apache2 restart
バーチャルホスト
$ mkdir /home/casey/public_html/ $ sudo vi /etc/apache2/sites-available/test.example.com
<VirtualHost *:80> ServerName test.example.com DocumentRoot /home/casey/public_html ErrorLog /var/log/apache2/test.example.com.error.log CustomLog /var/log/apache2/test.example.com.access.log combined LogLevel warn SuexecUserGroup casey casey </VirtualHost>
再起動
$ sudo a2ensite test.example.com $ sudo /etc/init.d/apache2 reload
WordPress
WordPress 用データベースを作成・
$ mysql -u root -p mysql> CREATE DATABASE wordpress; mysql> GRANT ALL PRIVILEGES ON wordpress.* TO "wp_db_admin"@"localhost" IDENTIFIED BY "wp_db_password"; mysql> exit;
→ pc.casey.jp » 自動生成される.htaccess のパーミッションがヘン・・
phpMyAdmin
phpMyAdmin をインストールした際に「mcrypt 拡張がありません。PHP の設定をチェックしてみてください」となるなら次を実行する:
$ sudo apt-get install php5-mcrypt $ sudo /etc/init.d/apache2 restart
本項の参考文献
mcrypt 拡張がありません。PHP の設定をチェックしてみてください。[ubuntu] | 超兄貴の開発メモ
その他の設定
大まかな構築はこんなものだろうか。あとは細かな設定を詰めていくことになる。
→ 「レン鯖御用達 suExec と suPHP 環境を構築する2(2)」へ続く
コメント
こんにちは。いつも拝見させてもらっています。
私はCentOS6.4環境でLAMP+suPHP環境を構築していたのですが、通常のPHPを使いたくないが為に
/etc/httpd/conf.d/php.confをphp.conf.disableなどとリネームして運用していました。
ところが7月12日〜13日くらいからWordPressにてプラグインの更新などを行おうとしたところ、
FTP情報の入力を促されるようになりました。あれ?suPHP環境で動いてないな。と思い、
その日付け前後のlogを見るとyumでphpや他の依存モジュールがupdateされていて、
勝手に/etc/httpd/conf.d/php.confが復活していました。
また既存のvirtualhostのconfファイルからもsuPHP_Engine onの記述も1行消えていました。
慌ててphp.confをphp.conf.bakなどとリネームして消えてしまった設定箇所なども見直し元の環境に
しました。
そこで管理人さんにお尋ねしたいのですが、OSの種類こそ違え、このように「勝手にphp.confが復活する」
といった現象をどのように回避されていらっしゃいますか。もしよろしかったらご教授願えませんか。
よろしくお願い致します。
コメントありがとうございます。
簡単にユーザー権限で動作させるなら、姑息な手段としてVirtualminやBlueOnyxを使う方法もありますが、任意のバージョンを利用されるということなので、ちょっと違いますね。
そうするとyumが勝手にインストールすることを停止する方法で、yumの設定ファイルに「PHPについては勝手にインストールしてくれるな」と記述する方法があったと思います。
それ以外では、ソースからインストールなどして、PHPのインストールオプションでインストール先を指定しておき、.htaccessなどから使用するPHPを直接指定する方法があるでしょうか。
この方法は、モジュール版が有効になっているサーバーで、PHPをCGIモードとして利用する場合などに利用されますね。
VALUE-DOMAINの提供するCORESERVERや、さくらインターネットが提供するレンタルサーバーでも複数のバージョンのPHPから任意のものを選択する事ができるようになっています。以下参考。
# その辺の内容をもうすこし整理して、かつ、特化したサイトを作っているところです。公開はいつになるやらですが・・。