Centos のバージョン番号は次のとおりです。
[marc disk5]$ cat /etc/redhat-release
CentOS release 5.7 (Final)
Apache Webサーバーを起動する方法は次のとおりです
[marc php]$ sudo gdb /usr/sbin/httpd
[sudo] password for marc:
GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-37.el5_7.1)
Copyright (C) 2009 Free Software Foundation, Inc.
Reading symbols from /usr/sbin/httpd...(no debugging symbols found)...done.
(gdb) run -X
Firefox Web ブラウザを起動する方法は次のとおりです。
[marc]$ sudo firefox
[sudo] password for marc:
Firefox Web ブラウザーに入力する URL は次のとおりです。
http MatchUpObjectPHPSample.php
Web ブラウザーによってレンダリングされた Web ページで送信要求をアクティブにすると、次の診断メッセージが表示されます。
Path /home/marc/data/mdMatchup.dat
throw exception /home/marc/data/mdMatchup.dat retval -1 errno 13
Errno 13 IS EACCESS は、ファイルの存在をテストするために使用する C/C++ access("/home/marc/data/mdMatchup.dat",F_OK) API 呼び出しによって返されます。アクセスのマニュアルページには、次のように記載されています。
EACCES 要求されたファイルへのアクセスが拒否されるか、pathname のパス プレフィックス内のディレクトリの 1 つに対する検索権限が拒否されます。
パスのパーミッションは次のとおりです。
[marc /]$ ls -l
drwxr-xr-x 7 root root 4096 Jan 3 11:45 home
[marc home]$ ls -l
drwx------ 38 marc users 4096 May 29 16:36 marc
[marc home]$ cd marc
[marc ~]$ ls -l
drwxrwxrwx 2 root root 4096 May 29 19:20 data
[marc ~]$ cd data
[marc data]$ pwd
/home/marc/data
[marc data] ls -l
-rwxrwxrwx 1 root root 244736 May 28 15:49 mdMatchup.dat
最後に、C++ コードの非常に短いスニペットを次に示します。
cSQLite::cSQLite(char *File_,bool bMustExist_) {
int retval(0);
if (bMustExist_) {
retval = access(File_,F_OK);
if (retval != 0) {
printf("throw exception %s retval %d errno %d\n",File_,retval,errno);
throw cException(ERR_DBDATABASE,"cSQLite",File_);
}
if (sqlite3_open(File_,&Database)!=SQLITE_OK) {
RecordError();
throw cException(ERR_DBDATABASE,"cSQLite",LastError);
}
}
Statement=0;
Columns=0;
}
誰かが私たちが犯している間違いを教えてもらえますか、またはこれが CentOS バージョン固有の問題であるかどうか教えてください。