Apacheのエラー:ServerNameについて
━━━━━━━━━━━━━━━━━━━━━━━━━ ★状況 ・Apacheサービスを起動すると以下エラーログ発生 ◆エラー内容 The Apache service named reported the following error: >>> httpd.exe: Could not reliably determine the server's fully qualified domain name, using 192.168.0.2 for ServerName 詳細な情報は、http://go.microsoft.com/fwlink/events.asp の [ヘルプとサポート センター] を参照してください。 ◆エラー内容(日本語訳) Apacheサービスは、次のエラーを報告名前: >>>のhttpd.exeは:確実にServerNameには192.168.0.2を使用して、 サーバーの完全修飾ドメイン名を判断できませんでした 詳細な情報は、http://go.microsoft.com/fwlink/events.asp の [ヘルプとサポート センター] を参照してください。 --- ※イベントログのアプリケーション(Windows2003R2)にて表示 ※サービスは正常起動(syntax OK) ★環境 ◆サーバーサイド ・OS:Windows2003 R2 ・Apache:2.2系 ★原因 ・Apacheのconfに「ServerName」が記述されていない。 ※「httpd.conf」およびvhostがある場合はvhostのconfにも「ServerName」記述が必要 ★解決 ・confファイルに「ServerName」を記述 --- ※例 ServerName localhost:80
PHPによる日付計算処理
以下はPHPによる日付計算関数などを利用して算出しています。
とても便利です!
※ソースコードは後ほど掲載予定♪
—
★今日は今年の何日目??
今日(2021/01/22)は今年(2021年)の1月1日から21日目です!
—
★今年もあと何日で終わり??
今年もあと344日で今年も終わります・・・
WordPressで管理画面ログイン後にアクセス権がないと表示される
WordPressを利用していると
「このページにアクセスするための十分なアクセス権がありません」
と怒られてしまうケースがあります。
私の場合、システムログイン後にこのメッセージが出ました。
その状況や原因を以下にて解説します。
━━━━━━━━━━━━━━━━━━━━━━━━━ ★状況 ・テーブルのprefix名を変更 DBテーブルとwp-config.phpのprefix名を変更した際、 WordPressで管理画面にIDとパスワードを入力してログイン後、 「このページにアクセスするための十分なアクセス権がありません」 とうい警告メッセージが表示される。 ※管理画面で操作不可 ※ブログ閲覧は問題なし ★環境 ◆サーバーサイド ・OS:CentOS 5.5 ・PHP:5.3.3 ・WordPress 3.01 ・Apache:2.2.3 ・MySQL:5.1.50-1 ◆WordPressのテーブル一覧(全11テーブル) 1: (prefix名)_commentmeta 2: (prefix名)_comments 3: (prefix名)_links 4: (prefix名)_options 5: (prefix名)_postmeta 6: (prefix名)_posts 7: (prefix名)_terms 8: (prefix名)_term_relationships 9: (prefix名)_term_taxonomy 10: (prefix名)_usermeta 11: (prefix名)_users ※(prefix名) ・・・ ユーザ指定のprefix名 ★原因 ・DBのテーブルprefixの変更が不十分 ★解決 テーブルprefix名を変更する際には、 ・DBのテーブルprefix名を変更 ・wp-config.phpのprefix名を変更 ・以下の2テーブル内に存在するprefix名を変更 1.(prefix名)_usermeta ・・・ フィールド:meta_key 2.(prefix名)_options ・・・ フィールド:option_name
写真専用CMS「Phormer」のインストール方法
写真を管理できるCMS「Phormer」
これをインストールしてみましたのでインストール方法を紹介します。
—
★配布サイト
・http://p.horm.org/er/
・最新バージョン:3.33 ※10.08.29現在
★環境
◆サーバーサイド
・OS:CentOS 5.5
・PHP:5.3.3
・GD extension
・ZIP extension
・EXIF extension
・Apache:2.2.3
※本システムはDBを使用しません。
★インストール方法
インストール先のパーミッションが正しくない場合、あるいは上記の3つのPHP extensionがない場合には警告がでますのでインストール・パーミッション設定を行います。
また、必要なディレクトリを作成し、そのパーミッションも設定します。
◆PHP extensionのインストール
・GD extension
・ZIP extension
・EXIF extension
◆ドキュメントルートのパーミッション設定
chmod 707 ドキュメントルート
◆手動で「data」「images」「temp」のディレクトリ作成
mkdir data images temp
◆作成したディレクトリのパーミッション変更
chmod 707 data images temp
◆index.xmlのパーミッション変更
chmod 606 index.xml
サイト名等を設定します。
日本語名を使用する際には、ドキュメントルートに以下の.htaccessを設置します。
■.htaccess
<ifmodule mod_php5.c> AddDefaultCharset UTF-8 AddType "text/html; charset=UTF-8" .html .php php_value default_charset UTF-8 php_value mbstring.language neutral php_value mbstring.internal_encoding UTF-8 php_flag mbstring.encoding_translation On php_value mbstring.http_input auto php_value mbstring.http_output UTF-8 php_flag mbstring.encoding_translation Off php_value mbstring.substitute_character none </ifmodule>
これで設置は完了です。
ハードディスクを仮想化する「Disk2vhd」
マイクロソフトの仮想化ソフトウェアには、有名なVirtual PCやVirtual Server、Hyper-V Server 2008などあります。
それぞれ、インストールする事によって、OSの中にOSを入れることが可能となります!
これを仮想マシン(バーチャルマシン)って呼んでます。
基本的な仮想マシンの説明:仮想マシン化を実現してくれる「Disk2vhd」
VirtualPCなどをインストールした後、仮想マシンのOSもインストールしなければならないですが、
実は、物理的なマシンをそのまま仮想マシンに変換することが可能なんです!
それがDisk2vhdです!
上記からDisk2vhdをダウンロードしてソフトを起動します。
OSの入っているHDDを選択し、さらにHAL情報とかをVirtualPCに合わせるためにPrepare for use in VirtualPCにチェックボックスを入れてCreateをクリック!
できあがったイメージを利用して仮想マシン向けHDDが完成します。
最近のWindows7には仮想HDDを扱う事が可能です。
ですので、仮想マシン作成以外にもDisk2vhdを利用機会はあるかと思います。
オススメです♪
バッチファイルを実行した際に無限ループにはまる現象
★状況
Windowsにおいて、netコマンドを利用してサービスを停止するバッチファイルを作成した。
そのバッチファイルを実行すると、DOS窓が消えずに無限ループになってしまう。
★環境
・OS:Windows(winxp 及び win2003)
・バッチファイルのファイル名:net.bat
★原因
・バッチファイルのファイル名に問題有り!
※「net.bat」と書くと、ファイル名にあるnetコマンドを呼び出してしまう。
★解決
・バッチファイルの名前を変更する
※バッチファイル名にはバッチファイルのコマンドを使用しない事!
★バッチファイルの内容(net.bat)
━━━━━━━━━━━━━━━━━━━━━━━━━
rem ★IISのサービス(+依存関係のサービス)を停止させる!
rem /yは、依存関係のサービスもstopさせるオプション
net stop /y "IIS Admin Service"
━━━━━━━━━━━━━━━━━━━━━━━━━
AccessのVBAでリンクテーブルを作成・更新[by ADOx]
★やりたい事 Accessで、他のDBを参照してリンクテーブルを作成する。 ★環境 ・WindowsXP SP3 ・Access2003 ★リンクテーブルを作成するための関数 ※以下のオレンジの太文字を環境に応じて変更して下さい。 ◆備考 ・リンクテーブルが存在しない場合はリンクテーブルを作成 ・同名のリンクテーブルが存在する場合は上書き(処理は削除して新規作成) ━━━━━━━━━━━━━━━━━━━━━━━━━ Public Function mk_tbl_link() '★参照ライブラリ ・・・ 以下を参照しないと動作しません。 '・Microsoft ADO Ext 2.8 DLL And Security '--------------------------------------------- '★変数宣言 Dim cat As New ADOX.Catalog Dim tbl() As New ADOX.Table Dim linkMDB As String Dim linkMDB_path As String Dim linkMDB_file As String Dim linkTblNames() As String Dim i As Integer Dim tblNames As Variant Dim itemNum As Integer 'リンクするテーブル数を入力。ただし、配列だから0からスタートに注意! itemNum = 6 ReDim tbl(itemNum) As New ADOX.Table ReDim linkTblNames(itemNum) As String '--------------------------------------------- '★値のセット linkMDB_path = "D:リンク先のパス" linkMDB_file = "リンク先のMDB.mdb" linkMDB = linkMDB_path & linkMDB_file i = 0 cat.ActiveConnection = CurrentProject.Connection 'リンクするテーブル名をセット linkTblNames(0) = "リンクするテーブル名1" linkTblNames(1) = "リンクするテーブル名2" linkTblNames(2) = "リンクするテーブル名3" linkTblNames(3) = "リンクするテーブル名4" linkTblNames(4) = "リンクするテーブル名5" linkTblNames(5) = "リンクするテーブル名6" linkTblNames(6) = "リンクするテーブル名7" '--------------------------------------------- '★メイン処理 For Each tblNames In linkTblNames '■各種設定 Set tbl(i).ParentCatalog = cat tbl(i).Properties("Jet OLEDB:Create Link") = True tbl(i).Properties("Jet OLEDB:Link Datasource") = linkMDB 'パスワード ・・・ 参照先DBにパスワードがある場合はここを記入 'tbl(i).Properties("Jet OLEDB:Link Provider String") = ";pwd=リンク先のMDBのパスワード" 'リンクしたテーブル名 tbl(i).Name = tblNames 'ソーステーブル名 tbl(i).Properties("Jet OLEDB:Remote Table Name") = tblNames '■リンクテーブル処理 For Each TB In cat.Tables If TB.Name = tblNames Then 'テーブル削除 cat.Tables.Delete tbl(i).Name Exit For Else ' End If Next TB 'リンクテーブル作成 cat.Tables.Append tbl(i) 'インクリメント i = i + 1 Next tblNames 'オブジェクトの破棄 Set cat = Nothing Set tbl(itemNum) = Nothing '終了メッセージ MsgBox ("リンクテーブルの作成/更新が完了しました") End Function ━━━━━━━━━━━━━━━━━━━━━━━━━
AccessのVBAでリンクテーブルの参照先を変更する
★やりたい事
Accessで、リンクテーブルの参照先をVBAを用いて変更する。
★環境
・WindowsXP SP3
・Access2003
★リンクテーブルを変更するための関数
※以下の赤の太文字を環境に応じて変更して下さい。
━━━━━━━━━━━━━━━━━━━━━━━━━ Public Function ch_tbl_link() '★参照ライブラリ ・・・ 以下を参照しないと動作しません。 '・Microsoft DAO 3.6 Object Library '------------------------------------------------------------------- '★変数宣言 Dim tdf As TableDef Dim dbs As Database '------------------------------------------------------------------- '★オブジェクトセット Set dbs = CurrentDb Set tdf = dbs.TableDefs("リンクテーブル名") '------------------------------------------------------------------- '★メイン処理 'プロパティ値の変更 With tdf .Connect = ";DATABASE=D:リンク先のMDB.mdb;TABLE=リンクテーブル名" .RefreshLink End With '終了メッセージ MsgBox "リンクテーブルの変更が完了しました。" 'オブジェクトの破棄 Set tdf = Nothing dbs.Close: Set dbs = Nothing End Function ━━━━━━━━━━━━━━━━━━━━━━━━━
WordPressでトラックバックが正常に送信できない問題
★状況
WordPressで記事を投稿した際に、相手サイトにトラックバックができない。
★環境
◆サーバーサイド
・OS:CentOS 5.5
・PHP:5.3.2
・WordPress 3.0
・Apache:2.2.3
★原因
◆トラックバックの際のタイムアウト(時間制限)
・デフォルトでタイムアウトが0.01秒と短めに設定されている。
・重たいサーバーの場合、トラックバックに失敗する可能性が高くなる!
★解決
◆以下のphpを書き換える
■対象php
/wp-includes/cron.php
■対象箇所
「cron.php」の234行目付近
▲修正前
wp_remote_post( $cron_url, array(‘timeout’ => 0.01, ‘blocking’ => false, ‘sslverify’ => apply_filters(‘https_local_ssl_verify’, true)) );
▲修正後
wp_remote_post( $cron_url, array(‘timeout’ => 3, ‘blocking’ => false, ‘sslverify’ => apply_filters(‘https_local_ssl_verify’, true)) );
※本修正は0.01秒から3秒に修正。