2014/07/21(月) [n年前の日記]
#2 [prog][ubuntu][linux] MySQL勉強中というよりUbuntu + apache2勉強中
_今から始める MySQL入門 - @IT
なる連載記事を読んで勉強中なのだけど。どうも最初のあたりは php の勉強のような…。
php を動かすために、Ubuntu + apache2 の設定を色々変更する羽目に。一応作業内容をメモ。
CentOSの場合は以下。
php を動かすために、Ubuntu + apache2 の設定を色々変更する羽目に。一応作業内容をメモ。
◎ Ubuntu + apache2 を設定。 :
まずは LAMP関係をインストール。sudo tasksel で LAMP はインストールしたはずなのだけど…。
apache2サーバ再起動時に警告が出る問題に対処。/etc/hosts を修正すれば解決するらしい。
ユーザアカウント毎にディレクトリを公開できるように設定。CGIも実行できるようにしておく。
mod_rewrite を有効化。
phpの動作確認。
テスト用のページを作成。
Ubuntu のデフォルト設定では、ユーザディレクトリ以下で php の動作を無効にしてあるらしいので修正。
htmlに記述したphpも動作させる。.htaccess に以下を記述。
sudo aptitude -y install apache2 mysql-server libapache2-mod-auth-mysql libapache2-mod-php5 php5-mysql php5 php5-cgi libapache2-mod-php5 php5-common php-pear
apache2サーバ再起動時に警告が出る問題に対処。/etc/hosts を修正すれば解決するらしい。
sudo vi /etc/hosts127.0.0.1 の行に以下を追加してみたり。
127.0.0.1 localhost.localdomain localhost localdomain 127.0.0.1 vagrant-ubuntu-trusty-64 192.168.56.100 vagrant-ubuntu-trusty-64他にもいくつか解決策はあるらしい。
ユーザアカウント毎にディレクトリを公開できるように設定。CGIも実行できるようにしておく。
sudo a2enmod userdir
sudo vi /etc/apache2/mods-available/userdir.conf
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ↓ Options ExecCGI MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
sudo service apache2 restartユーザディレクトリ以下に、特定フォルダを作成。
mkdir ~/public_html
mod_rewrite を有効化。
sudo a2enmod rewrite
phpの動作確認。
sudo vi /etc/apache2/mods-enabled/mime.conf220行あたりに、以下の記述を追加。
AddHandler php5-script .php
テスト用のページを作成。
sudo vi /var/www/html/info.php以下を入力。
<?php phpinfo(); ?>_http://localhost/info.php や _http://192.168.56.100/info.php にアクセスしてphpの設定その他が一覧表示されるか確認。
Ubuntu のデフォルト設定では、ユーザディレクトリ以下で php の動作を無効にしてあるらしいので修正。
sudo vi /etc/apache2/mods-enabled/php5.conf
<IfModule mod_userdir.c> <Directory /home/*/public_html> # php_admin_flag engine Off </Directory> </IfModule>「php_admin_flag engine Off」の行をコメントアウト。
htmlに記述したphpも動作させる。.htaccess に以下を記述。
AddType application/x-httpd-php .php .html AddHandler application/x-httpd-php .php .html
◎ Ubuntu上でインストール済みパッケージを確認。 :
dpkg -l | grep パッケージ名
CentOSの場合は以下。
rpm -qa | grep パッケージ名
◎ ftpサーバの設定。 :
ftpサーバ vsftpdをインストール。
/etc/vsftpd.chroot_list と /etc/vsftpd.user_list を作成しておく。
sudo aptitude install vsftpd
sudo vi /etc/vsftpd.conf以下のような感じの設定をしておく。
anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 use_localtime=YES ascii_upload_enable=YES ascii_download_enable=YES chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list ls_recurse_enable=YES allow_writeable_chroot=YESvsftpd 2.3.5 は chroot 関係のバグがあるのだけど、Ubuntu 14.04 でインストールされるのは vsftpd 3.0.2 なので、
allow_writeable_chroot=YESを書けば問題は出ないはず。
/etc/vsftpd.chroot_list と /etc/vsftpd.user_list を作成しておく。
sudo touch /etc/vsftpd.chroot_list sudo vi /etc/vsftpd.user_list/etc/vsftpd.user_list に、ftpでログインするユーザを記述しておく。
◎ Windows + NTEmacs でftpアクセス。 :
ange-ftp とやらを使えば、ftpでアクセスしてファイル編集できるらしい。
C-x C-f /FTPユーザ名@FTPサイト名:/public_html/index.html
◎ Ubuntuのlocale設定。 :
_Ubuntuに日本語localeを設定する | dreamedge.net
を参考にして作業。
sudo apt-get install language-pack-ja export LANG=ja_JP.UTF-8 sudo update-locale LANG=ja_JP.UTF-8
◎ escapeshellcmd() に日本語を渡すと空になる問題。 :
php の escapeshellcmd() を使った際に日本語を渡すと中身が空になってしまう。
.php の最初の方で、以下を呼ぶこと。
尚、 _PHPのescapeshellcmdを巡る冒険 | 徳丸浩の日記 によると、escapeshellcmd() より escapeshellarg() のほうがセキュリティ面では良いらしい、とメモ。
.php の最初の方で、以下を呼ぶこと。
setlocale(LC_ALL, 'ja_JP.UTF-8');
尚、 _PHPのescapeshellcmdを巡る冒険 | 徳丸浩の日記 によると、escapeshellcmd() より escapeshellarg() のほうがセキュリティ面では良いらしい、とメモ。
◎ DocumentRoor以下で.htaccessを有効にする。 :
sudo vi /etc/apache2/apache2.conf以下を追加。
<Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
[ ツッコむ ]
以上です。