mieki256's diary



2014/07/21(月) [n年前の日記]

#2 [prog][ubuntu][linux] MySQL勉強中というよりUbuntu + apache2勉強中

_今から始める MySQL入門 - @IT なる連載記事を読んで勉強中なのだけど。どうも最初のあたりは php の勉強のような…。

php を動かすために、Ubuntu + apache2 の設定を色々変更する羽目に。一応作業内容をメモ。

Ubuntu + apache2 を設定。 :

まずは LAMP関係をインストール。sudo tasksel で LAMP はインストールしたはずなのだけど…。
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/hosts
127.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.conf
220行あたりに、以下の記述を追加。
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をインストール。
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=YES
vsftpd 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 の最初の方で、以下を呼ぶこと。
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>

以上です。

過去ログ表示

Prev - 2014/07 - Next
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project