CentOS上でCakePHPの作成ができない

このQ&Aのポイント
  • CentOS7で/var/www/htmlディレクトリ内にCakePHPのディレクトリを作成しようとしていますが、権限のエラーが発生しています。
  • 権限については/var/wwwディレクトリの所有者やパーミッションに問題はないようですが、ディレクトリが作成されていません。
  • SELinuxを無効化してみたものの、問題は解決されていません。初心者のため、解決方法が分からない状況です。
回答を見る
  • ベストアンサー

centos上でcakephpが作れない

CENTOS7 cakephp3 /var/www/htmlの中にcakephpのディレクトリを作ろうと、 cd /var/www/html composer create-project --prefer-dist cakephp/app test としましたが、 mkdir(): Permission deniedというエラーが出てしまうので、 cd /home/user composer create-project --prefer-dist cakephp/app /var/www/html/test としてインストールすると、正常にインストールしてる風ではあったんですが、 ls /var/www/html で見てみてもディレクトリが作られていません。 権限については ls -l /var/www drwxrwxr-w. 2 root root html となってるので問題ないという認識です。 ちなみにselinuxが邪魔するというので無効化しました。 $ getenforce Disabled 初心者ですがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5078/13270)
回答No.2

> 今思いついたのですが、sudo composerとするにはrootにもcomposerの実行ファイルを渡さないとだめだから/usr/local/binにcomposerがあるだけではだめということでしょうか? ファイルがあれば問題ありませんが、root の環境設定でパスが通ってないと言った事が原因として考えられます > drwxrwxr-w. 2 root root html > htmlディレクトリの権限がこうなっているのでグループユーザーでもでぃれくとりの作成はできるはずだと思いました。 実行ユーザーが root グループに入っているんでしょうか? セキュリティー上あまりいい設定ではないですよ。 composer を実行する前に sudo mkdir でディレクトリを作って、sudo chown で所有者・グループを実行ユーザーに変えてから composer を実行した方がいいんじゃないでしょうか。

natyo4235
質問者

お礼

回答ありがとうございました。 sudo visudo とした後にsecure_pathに/usr/local/binを追記したらできました。

その他の回答 (1)

  • t_ohta
  • ベストアンサー率38% (5078/13270)
回答No.1

作業している際のユーザーは root で間違いありませんか? 通常 root ユーザーなら Permission denied が出る事は無いので、他のユーザーで作業しているんじゃないかと思います。

natyo4235
質問者

補足

回答ありがとうございます。 sudo composer~としたときに、 sudo: composer: command not found となってしまい調べてもよくわからなかったので ls -l /var/www drwxrwxr-w. 2 root root html htmlディレクトリの権限がこうなっているのでグループユーザーでもでぃれくとりの作成はできるはずだと思いました。 今思いついたのですが、sudo composerとするにはrootにもcomposerの実行ファイルを渡さないとだめだから/usr/local/binにcomposerがあるだけではだめということでしょうか?

関連するQ&A

  • CakePHPのコントローラの作成

    PHP初心者です。 CakePHPをインストールし試しにTestControlerを作成したのですが、ページが開きません。 PageNotFoundになります。 考えられる原因が分かれば教えて下さい。 【やったこと】 ・ [CakePHP root]\app\Controller に TestController.php を作成。 <?php App::uses('AppController', 'Controller'); class TestController extends AppController { } ・ URLにアクセス http://[CakePHP root]/Test ⇒ Not Found http://[CakePHP root]/test ⇒ Not Found http://[CakePHP root]/app/webroot/index.php?url=test ⇒ CakePHPのindex.phpが表示される。 http://[CakePHP root]/app/webroot/index.php?url=Test ⇒CakePHPのindex.phpが表示される。 以下のサイトを参考にしました。mod_rewriteが動いていない可能性がある ということなので、URL直接指定もしてみましたがダメでした。 http://codezine.jp/article/detail/768?p=2 よろしくお願いします。

    • ベストアンサー
    • PHP
  • cakePHP導入 XREA+について

    同じタイトルの質問から、検索して辿り着いたURL http://massat.jp/2007/01/08/110 を参考にXrea+ (有料版)の設定をしています。 しかし、動いてなさげです。 ディレクトリツリー: root / この直下に、cakephpをインストールしました。 次に、 mv -r root/cakephp/app/webroot/* root/public_html/dev.hoge.com/. でファイルを移動。 移動先のdev.hoge.com/index.phpを、 if (!defined('ROOT')) { define('ROOT', DS.'cakephp'); } /** * The actual directory name for the "app". * */ if (!defined('APP_DIR')) { define('APP_DIR', 'app'); } /** * The absolute path to the "cake" directory, WITHOUT a trailing DS. * */ if (!defined('CAKE_CORE_INCLUDE_PATH')) { define('CAKE_CORE_INCLUDE_PATH', ROOT); } と、編集しました。 これでいい筈なので、一緒にパッケージれていたtest.phpも、同じ内容で編集しました。 test.phpを実行させると、次のエラーが出ます。 Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit in safe mode in /virtual/taokato/public_html/dev.bit-station.com/test.php on line 27 Warning: include(cake/bootstrap.php) [function.include]: failed to open stream: No such file or directory in /virtual/taokato/public_html/dev.bit-station.com/test.php on line 84 Warning: include() [function.include]: Failed opening 'cake/bootstrap.php' for inclusion (include_path='/cakephp:/cakephp/app/:.:/usr/local/lib/php') in /virtual/taokato/public_html/dev.bit-station.com/test.php on line 84 Fatal error: CakePHP core could not be found. Check the value of CAKE_CORE_INCLUDE_PATH in APP/webroot/index.php. It should point to the directory containing your /cake core directory and your /vendors root directory. in /virtual/taokato/public_html/dev.bit-station.com/test.php on line 85 これは、設定ミスをしているのでしょうか? 解説通りにしたはずなんですけど・・・。 参考にしたURL http://oshiete1.goo.ne.jp/qa5421358.html http://www.wakatta-blog.com/cakephpxrea.html http://www.cakephp.jp/doc/ch03s04.html#id4797748 http://massat.jp/2007/01/08/110 ご教示のほど、よろしくお願いします。

    • 締切済み
    • PHP
  • CakePHPのファイルの所有者の権限について

    UbuntuにCakePHPを動くようにしました。 端末から下記のコマンドでCakePHPの圧縮ファイルを解凍しました。 ・sudo unzip cakephp-cakephp-1.3.13-0-g924fb6f.zip 下記のコマンドを実行してディレクトリやファイルの所有者(ユーザーやグループ)を確認したらrootでした。 ・ls -la CakePHPのディレクトリやファイルの所有者(ユーザーやグループ)は誰にしたらいいのでしょうか。 ※例えばnobooyやnogroupやwww-dataするとか 申し訳ありませんがアドバイスいただけませんでしょうか。 つまらない質問かもしれませんが宜しくお願いします。

    • ベストアンサー
    • PHP
  • CakePHPの表示エラーについて

    --------------------------- CakePHPバージョン:1.3.14. PHPバージョン:5.3.3 Apacheバージョン:2.2.3 --------------------------- CakePHPを始めたばかりです。 インストールを完了し、トップページでのhello world!の表示は出来ました。 (トップページだけは特例のようですね) http://www.example.com/test/hello という形でhello world!を表示させたいと思い下記のようにファイルを作りUPしましたが、エラーが表示されてしまいました。 何を変更すればうまくファイルが表示されるのかを教えていただければと思います。 test_controller.php ---------------------------------------------------------- class TestController extends AppController { public $name = "Test"; public $uses = null; public $autoRender = true; function index(){ } function hello(){ $this->set("content", "Hello World!"); } } ---------------------------------------------------------- http://www.example.com/test/hello (エラーメッセージ) ------------------------------------------------------------------------------- Warning: include(cake/bootstrap.php): failed to open stream: No such file or directory in /var/www/html/example.com/test.php on line 76 Warning: include(): Failed opening 'cake/bootstrap.php' for inclusion (include_path='/var/www:/var/www/html/:.:/php/includes:/usr/share/pear') in /var/www/html/example.com/test.php on line 76 Fatal error: CakePHP core could not be found. Check the value of CAKE_CORE_INCLUDE_PATH in APP/webroot/index.php. It should point to the directory containing your /cake core directory and your /vendors root directory. in /var/www/html/example.com/test.php on line 77 ------------------------------------------------------------------------------- bootstrap.phpというファイル名が出てきているので、bootstrap.phpを見てみましたが何が間違っているのかはわかりません。 include_pathも出てきているので、cakephpのパスを通しておく必要があるのでしょうか? bootstrap.php ------------------------------------------------------------- if (!defined('PHP5')) { define('PHP5', (PHP_VERSION >= 5)); } if (!defined('E_DEPRECATED')) { define('E_DEPRECATED', 8192); } error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT); require CORE_PATH . 'cake' . DS . 'basics.php'; $TIME_START = getMicrotime(); require CORE_PATH . 'cake' . DS . 'config' . DS . 'paths.php'; require LIBS . 'object.php'; require LIBS . 'inflector.php'; require LIBS . 'configure.php'; require LIBS . 'set.php'; require LIBS . 'cache.php'; Configure::getInstance(); require CAKE . 'dispatcher.php'; ------------------------------------------------------------- (全体の設定状況など) .htaccess httpd.conf あたりの設定が間違っているのかと思い、ネットで情報を調べていろいろ変更したりしてみましたがダメでした。 あと一つ気になる点としては、公開ディレクトリ以外をUPしているディレクトリ名をcakeにしてしまっているところです。(cakeというディレクトリ名はダメとかあるのでしょうか?) ディレクトリの構成と設定の内容を下記に記載します。 [/var/cake]プログラムファイル /var/cake/app /var/cake/plugins /var/cake/vendors /var/cake/.htaccess /var/cake/index.php 公開ディレクトリ(ルート) css files img js .htaccess css.php index.php ############################################################## .htaccessの設定 ############################################################## 3か所ほど設定すべきところがあるようなので下記のように設定しました。 /var/cake/.htaccess ------------------------------------------------- <IfModule mod_rewrite.c> RewriteEngine on RewriteBase /cake RewriteRule ^$ app/webroot/ [L] RewriteRule (.*) app/webroot/$1 [L] </IfModule> ------------------------------------------------- /var/cake/app ------------------------------------------------- <IfModule mod_rewrite.c> RewriteEngine on RewriteBase /cake/app  RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] </IfModule> ------------------------------------------------- 公開ディレクトリの.htaccessの設定 ------------------------------------------------- <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /  RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !\.(cgi|css|gif|jp?g|png)$ RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] </IfModule> -------------------------------------------------

    • ベストアンサー
    • PHP
  • remove関数(?)でプロセスが停止する。

    remove関数(?)でプロセスが停止する。 すみません。とても困っています。 ご存知でしたら、教えてください。 現在、linuxでc言語のプログラミングをしています。 元々、以下のディレクトリがあるとします。 /var/tmp/etc 2つのプロセスがあり、それぞれA、Bとします。 プロセスA内の一つのスレッドで、 remove("/var/test.dat")を実行し削除するようにプログラムしています。 また、プロセスB内の1つのスレッドで、 system("mkdir /var/tmp/etc/test1)とし、test1ディレクトリを 作るようプログラムしています。 実行し、普通に動いていたのですが、 このremove関数とsystem(mkdir)関数が同時?に実行(バッティング)すると そこでピタッと処理がとまってしまい、 (↑ログを仕込んで調べてみました。確実ではありませんが、同時に起きる時に 大体とまっていると推測しています。) /varディレクトリにすらアクセスできなくなってしまいます。 (cd var で lsコマンドを叩くと何も表示されないし、リターンもない) この現象を回避したいのはしたいのですが、 まず原因を知りたいと思っています。 remove関数とsystem(mkdir)関数が同時に走るとなぜだめなんでしょうか? すみませんが、いくら調べてわかりませんでした。 ご教示いただけると助かります。 以上、よろしくお願いいたします。

  • XREA : CakePHP(1.2.6)の設置作業で困っています。

    XREA で、 CakePHP(1.2.6)の設置作業をしています。 ディレクトリ: /cakephp/app/config ファイル名: database.php database.phpを修正した所、次のメッセージが表示されました。 ここから、---------- Release Notes for CakePHP 1.2.6. Read the changelog Your tmp directory is writable. The FileEngine is being used for caching. To change the config edit APP/config/core.php Your database configuration file is present. Parse error: syntax error, unexpected T_STRING, expecting ')' in /virtual/アカウント名/cakephp/app/config/database.php on line 88 ----- ココまで。 最後の「Parse error」は、どの様に対処したら良いですか。 database.phpの編集内容は、次の通り。 var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'user', 'password' => 'pass', 'database' => 'user', ''encoding' => 'utf8' 'prefix' => '', 以上、よろしくお願いします。

    • 締切済み
    • PHP
  • Cakephp2.0で、PhantomJs

    Cakephp 2.0のConsole/Commandで、スクレイピングを行う処理を実装しようとしています。 PhantomJsを使おうとしていますがどうもうまくいきません。 composerを利用してPhantomJsを、 /XAMPP/xamppfiles/htdocs/cakephp/app/Vendor にインストールしました。 ”/XAMPP/xamppfiles/htdocs/cakephp/app/” に test.phpとして、 <?PHP require_once('vendor/autoload.php' ); use JonnyW\PhantomJs\Client; $client = Client::getInstance(); $client->getEngine()->setPath('vendor/bin/phantomjs'); $request = $client->getMessageFactory()->createRequest(); $response = $client->getMessageFactory()->createResponse(); $request->setMethod('GET'); $request->setUrl('https://pg.kdtk.net/sample/phamtomjs_test.html'); $client->send($request, $response); echo "request url: " . $request->getUrl() . "\n"; echo "response: " . $response->getStatus() . "\n"; if($response->getStatus() === 200) { echo "content: \n"; echo $response->getContent(); } ?> というサンプルプログラムを実行するとうまくいきました。 これを、Console/Commandで実装したいのですが、どのように実装したら良いかわかりません。 例えば /XAMPP/xamppfiles/htdocs/cakephp/app/Console/Command に、 SampleShell.php として保存し、 <?php class SampleShell extends AppShell { public function startup() { parent::startup(); App::import('Vendor', 'Client', array('file' => 'JonnyW/PhantomJs/Client.php')); } // メイン実行関数 public function main() { $client = Client::getInstance(); } } ?> php cake.php Sample を実装すると、 PHP Fatal error: Class 'Client' not found ・・・ とエラーとなります。 インスタンスを生成できるようにするにはどのようにすれば良いのでしょうか? ご教示いただきますよう、何卒宜しくお願い申し上げます。

    • 締切済み
    • PHP
  • lsの4096とディレクトリ容量計測方法について

    ls -la を実行すると サイズが4096というディレクトリ(test1とする)が多々見つかります。 またディレクトリによっては、0(test2とする)というのもありました。 ただ、test2ディレクトリの下に、file1というファイルがありサイズが10kでした。 【環境】 /root/test1(4096) /root/test2(0)   →file1(10K) /root/test3(4096) 【質問1】 ls -la で表示される4096とは何のことなのでしょうか? 【質問2】 ウインドウズのフォルダのように、ファイルサイズがディレクトリサイズに反映されてtest2に、 ディレクトリサイズが10kではなく、0と表示される理由は、なぜなのでしょうか? 【質問3】 各ディレクトリのサイズをlsで見れないとすれば、duコマンドで調べるしかないのでしょうか? 以上3点、 ご教授お願いします。

  • /etc/crontabに記述してあるのに一部のスクリプトの実行結果が通知されない

    RedHat9を使用しています。 # cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ 00,12,24,36,48 * * * * root run-parts /etc/cron/networkDown.cron 05 * * * * root run-parts /etc/cron/top_c.cron # ls -l /etc/cron/ drwxrwxr-x 2 root root 4096 1月 13 01:38 networkDown.cron/ drwxrwxr-x 2 root root 4096 11月 15 14:23 ntp.cron/ drwxrwxr-x 2 root root 4096 11月 26 14:24 top_c.cron/ # ls -l /etc/cron/networkDown.cron -rwxr-xr-x 1 root root 481 2月 28 2004 diskSpaceCheck.cron* -rwxr-xr-x 1 root root 2938 8月 5 15:33 networkDown.cron* -rwxr--r-- 1 root root 206 11月 30 23:56 popAccessCheck.cron* -rwxr--r-- 1 root root 543 1月 13 01:37 printSeverCheck.sh* となっていますが何故か/etc/cron/networkDown.cronディレクトリだけの実行結果がroot宛に通知されません。 /etc/cron/top_c.cronの実行結果はroot宛に通知されます。 # tail -f /var/log/cron には # crontab -l で表示される分のcronの処理結果しか吐かれないようです。 どうして、一部のディレクトリだけの実行結果が通知されないのでしょうか?

  • cakephp1.3によるbatch

    php5.3.1 cakephp1.3 win-vista (他LAPP/LAMP環境整備) を使用し、eclipse3.6でphpソースおよびhtmlソースを作成しています。 すでに、この環境においてcakephpで作成したwebページは表示されていますので、php/apache/DB等々の基本的な設定は問題ないとお考えください。 batchPGの評価を行うべく、サンプルPGを"APP/venders/shells"に配置しました。 batchsample.php <?php class BatchsampleShell extends Shell { function main() { $this->out('hogehoge'); } } ?> cakeコマンドでcli実行しますと、 Error: Class BatchsampleShell could not be loaded. と表示され、実行がかないません。 バッチ実行用に追加設定等が必要なのか、それとも何かコツが必要なのか。 ご存知の方、教えていただけますでしょうか。 よろしくお願いします。 ※cakeコマンドの実行方法 cd APP/venders/shells (pg配置ディレクトリに移動) c:\hogehoge\(cake1.3本体格納ディレクトリ)\cake\console\cake batchsample ちなみに、win-vistaからフォルダをそのまま移行したlinux環境(PHP 5.2.17)でも、webは表示、batchは同様のエラーとなっています。

    • ベストアンサー
    • PHP