Pages - Menu

ラベル Apache の投稿を表示しています。 すべての投稿を表示
ラベル Apache の投稿を表示しています。 すべての投稿を表示

2013-12-25

PukiWiki Advance セットアッップのメモ

自前サーバでPukiWiki(Advance)をセットアップしたときのトラブルのメモ。

スペック
Windows7(x86), Apache2.4, PHP 5.4.23, PukiWiki Advance v1.0.3
(PHP5.5でPukiWikiAdv1.0.3を動かそうとするとwarning:preg_replaceがログされる。PHP5.4を推奨)

設定確認に関する基本的な事項

  • 必要なモジュールを公式ページでチェックし、正しくロードされているか確認する。
    モジュール設定後、正しくロードされている場合はphpinfo()でモジュール名がついたテーブルが表示される。
  • Apacheの/log/error.logを確認する。
  • pukiwiki/webroot/index.phpをエディタで開き、DebugModeを有効にする。
    index.phpを開いて、エラーがある場合は表示される。

index.php以外が表示されない

http://xxx/index.php は表示されるが、その他のページへのリンクでは、403やファイルの一覧が表示されてしまう。
次のようなパターンがある:

コマンドページが表示されない

たとえばログインページ(http://xxx/?cmd=login)に飛ぼうとして、403やDirectoryのファイル一覧が表示されてしまう場合は、はてなマーク以降のコマンド(cmd=login)がindex.phpに渡せていない。

解決法

URLを"http://xxx/index.php?cmd=login"に手動で変更すると正しく表示される場合は、DirectoryIndexの問題。
httpd.confまたは.htaccessでwebrootディレクトリのDirectoryIndexをindex.phpに変更する(以下参照)。

<IfModule dir_module>
      DirectoryIndex index.php
  </IfModule>

他ページが表示されない

例えばトップページのURLが"http://xxx/FrontPage"と表示される場合。

解決法

URLを"http://xxx/?FrontPage"(または"http://xxx/index.php?FrontPage)に手動で変更して正しく表示される場合は、wiki-data/pukiwiki.ini.phpファイルの設定が間違っている可能性がある。

  1. pukiwiki.ini.phpをエディタで開き、223行目あたりの$static_urlの値を0にする。
    これによって、/FrontPageが/?FrontPageのように出力されるようになる。
  2. Apacheのconf/httpd.confをエディタで開き、rewrite.moduleのロードをコメントアウトする。
    #LoadModule rewrite_module modules/mod_rewrite.so

その他

正しく表示されない場合、関係があるかもしれない設定項目。

rewriteモジュール

URLrewrite機能を利用しないならば(しないほうが無難だと思う)、rewriteモジュールはロードしないようにする(webroot/.htaccess内のIfModule rewrite.cで呼び出されるため)。

mbstringモジュール

php.iniを開き、module_mbstringのコメントアウトをはずす。さらに下のほうにある[mbstring]以降の設定項目を適宜コメントアウトを外して有効にする。

php.iniが反映されない

php.iniを編集しても、Apache上で反映されないことがある。
以下の項目をチェックする:
・httpd.confのPHPIniDirの参照先
・httpd.confのphp5apache2_4.dllモジュール(モジュールの設置場所は利用するphpのディレクトリ、たまにモジュールに問題があり接続できない?)

2013-07-20

自宅サーバにWordpressをインストールする

自宅サーバにWordpressをインストールする方法。

必要なもの

Apache
PHP
MySQL
Wordpress

Apache

\conf\httpd.cnfでPHPに応じた設定をする。
\bin\httpd.exeで起動する。エラー終了してしまう場合は、コマンドプロンプトから叩くと良い。

PHP

必要に応じてphp.iniをいじる必要あり。

MySQL

インストールし、localhostにバインドする。

Wordpress

Apache2x\htdocs\にインストールする。

Wordpressデータベースのコピー

既にWordpressを持っていて、データベースをコピーしたいときの手順。
GUIが便利なため、MySQL Workbenchで説明する。
  1. MySQL Workbenchを開く
  2. (右)の下にある'Manage Import/Export'をクリック
  3. 左のブラウザから'Data Import/Restore'を選択
  4. 'Import from Self-Contained File' を選択し、'File Path' で予めバックアップしたWordpressのSQL/Dumpファイル(.sql)を選択
  5. 'Default Schema to be Imported To' で 'new' を選択し、適当な名前(ここではtestschemaとする)のShemaを作成
  6. 'Start Import' をクリック
  7. 左上のホームタブをクリックしホーム画面に戻る
  8. 'Local instance MySQL**' をダブルクリックして開く
  9. Schema Browser で 'testschema' - 'Tables' を開く
  10. '***options' で終わるテーブル名を探す(wp_optionsとする)
  11. 中央のQueryWriterで次のクエリを書く
    select *
    from wp_options
  12. 稲妻マーク(Execute Query)をクリック
  13. 次の2項目を適宜変更する
    option_id:1 siteurl
    option_id36 home

2013-07-09

[Apache] Skypeによるポート80の使用

Apacheを立ち上げようとした際に、次のようなエラーメッセージが出て立ち上がらないことがある。
(OS 10048)通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、またはポートのどれか 1 つのみを使用できます。 : AH00072: make_sock: could not bind to address 0.0.0.0:80 AH00451: no listening sockets available, shutting down AH00015: Unable to open logs

原因を調べてみよう。
エラーメッセージによると、ポート80に問題があるらしい。コマンドプロンプトでnetstatを叩く。
C:\>netstat -abn

アクティブな接続
プロトコル ローカル アドレス 外部アドレス 状態
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
[Skype.exe]
どうやらSkypeにポート80を使われてしまっているようだ。

Skypeのポートを変更

Skypeの設定を開き、「詳細」→「接続」タブを開く
「上記のポートに代わり、ポート80と443を使用」のチェックを外す

2013-07-01

Wordpressのトップページが表示されないときの解決

Wordpressインストール後、ログイン画面からログインに成功しても、ダッシュボードが表示されず、「Index of /wordpress/wp-admin」とwp-adminディレクトリのフォルダが表示されてしまうことがある。

原因はApacheの設定。
.htaccessまたはhttpd.confの設定で、DirectoryIndexを変更することで解決できる。
私のhttpd.confでは以下のように書き換えた。

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
変更後
<IfModule dir_module>
    DirectoryIndex index.php
</IfModule>
参考
Wordpressフォーラム ログイン後TOPページが表示できません

ApacheでPHPを利用する

ApacheでPHPを利用するための設定。

メモ


Windows環境で、Apache2.0、php-5.5.0-Win32-VC11-x86を用いようとした。
しかし、php5.5.0には(nts版に関わらず)php5apache2.dllが含まれておらず、 dllライブラリからダウンロードしてきたものを使っても、モジュールのロードに失敗した。
原因は不明だが、Apache2.4の使用を推奨する。

apache2.4の入手先
Apache Lounge
(Apache公式ではソースしか公開してない)

php5.5.0(forWindows)の入手先
PHP公式
(Apacheとの連携にはThread Safe版を推奨らしい)


設定


Apacheフォルダ内の"httpd.con"を編集する。
(ここではphpをc:/phpにインストールした場合)

モジュールの追加

# Dynamic Shared Object (DSO) Support
のブロックの末尾に
LoadModule php5_module c:/php/php5apache2_4.dll
を追加

拡張子の登録

# AddType allows you to add to or override the MIME configuration # file specified in TypesConfig for specific file types.
ブロックの末尾に
AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps
を追加  

php.iniへのリンク

ファイルの末尾に次を追加
<IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> PHPIniDir "c:/php"  
参考
AdminWeb.jp PHP利用のための設定