質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

Q&A

2回答

3781閲覧

ローカル(MAMP)で作成したCakephp3プロジェクトをレンタルサーバで動かしたい

massy7

総合スコア45

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

0グッド

0クリップ

投稿2017/06/10 06:40

編集2017/06/28 01:30

###前提・実現したいこと
ローカル上でMAMPを用いてCakephp3プロジェクトを作成しました.
ローカルホストでは正常に動作しており,これをそのままレンタルサーバで動作させたいです.

FTPでCakephp3のプロジェクトフォルダをサーバに設置し,さくらレンタルサーバーでCakePHP3本体をwww/以下に置かないための設定を行いました.
以下のようにwebrootにアクセスすると以下のエラーが出てしまいます.
http://MYDOMAIN.sakura.ne.jp/PROJECTNAME/webroot/

###発生している問題・エラーメッセージ
Webroot

routes.phpでは以下のように設定がしてあります.(MAINCONTROLLER:コントローラディレクトリ)

php

1$routes->connect('/', ['controller' => 'MAINCONTROLLER', 'action' => 'index', 'home']);

###試したこと
URLを変えてもだめです.!
(http://XXX.sakura.ne.jp/XXX)
URL

###補足情報
・さくらのレンタルサーバー スタンダード

サーバやルーティングに関してあまり詳しくないのですが,解決方法,または解決のための簡単な説明ページなどがありましたらご教示願います.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mosa

2017/06/13 05:51

このページにアクセスした時のURLが誤っているのかもしれません。 (ドメイン部分は隠すなどして)ブラウザでアクセスした時のURLを記載してもらうと回答が付きやすいかと思います。
massy7

2017/06/18 12:38

追記しました.助言ありがとうございます.
guest

回答2

0

元のドキュメントを見ると、
ln -s /home/USERNAME/project/PROJECTNAME/webroot /home/USERNAME/www/cakephp_is_here
となっているので、
http://MYDOMAIN.sakura.ne.jp/cakephp_is_here
にアクセスしてみてください。(もし、「cakephp_is_here」を独自に変えているのであれば、それにあわせてください。)

それでもエラーとなる場合は、シンボリックリンクが正しく設定できていないので、コマンド
ls -l /home/USERNAME/www/cakephp_is_here
の結果を教えてください。

投稿2017/06/18 14:18

mosa

総合スコア218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

massy7

2017/06/18 14:52

実行した結果このようになりました total 0 lrwxr-xr-x 1 PROJECTNAME users 50 Jun 10 15:26 webroot -> /home/MYDOMAIN/project/PROJECTNAME/webroot ローカルで開発したもの(フォルダ)をそのまま上書きしたら移行できるという考えで大丈夫ですよね?(事前にCakephpはインストールしてます)
massy7

2017/06/18 14:54 編集

ちなみに,webrootのindex.phpは編集していないはずです
mosa

2017/06/19 01:35

ああ、なるほど。【cakephp_is_here】の部分を【webroot】にしたのですね。 元のドキュメントをよく見直してみてください。 『ln -s /home/USERNAME/project/PROJECTNAME/webroot /home/USERNAME/www/cakephp_is_here』 『「cakephp_is_here」の部分は好きな文字列でOKです。』とあるとおり、「cakephp_is_here」は本当になんでもよいと言うことです。 逆にシンボリックリンクのsourceとdestinationを同名(webroot)にしてしまうと↓このような問題がおきます。 https://open-groove.net/linux/directory-symbolic-link/ このままではダメなので、再度シンボリックリンクを上書きしてください。 ln -fs /home/USERNAME/project/PROJECTNAME/webroot /home/USERNAME/www/hoge その後、http://MYDOMAIN.sakura.ne.jp/PROJECTNAME/hoge/ にアクセスしてみてください。 > ローカルで開発したもの(フォルダ)をそのまま上書きしたら移行できるという考えで大丈夫ですよね? 原則は大丈夫ですが、データベース接続先や、tmp, logs ディレクトリのパーミッションなどがどうなっているか次第です。 今はルーティングができていないので、それができれば何が足りないかをCakePHPが教えてくれます。
massy7

2017/06/19 03:13 編集

cakephp_is_hereの部分はwebrootではなくPROJECTNAMEにしています。これでも問題なのでしょうか? パスは「/home/USERNAME/www/PROJECTNAME/(webrootのシンボリックリンク)」です。
mosa

2017/06/19 05:03

ちょっと「cakephp_is_hereの部分はwebrootではなくPROJECTNAMEにしています」の意味がわからないので最初から確認手順を示します。 さくらのレンタルサーバのDocumentRootは /home/USERNAME/www/ です。 /home/USERNAME/project/PROJECTNAME/webroot/index.php に配置したプログラムを /home/USERNAME/www/index.php にマッピングさせる作業をしようとしているのが「かみおか日記」さんです。 確認手順を以下に示します。 1.ls /home/USERNAME/project/PROJECTNAME/webroot を実行する。    →index.php(CakePHP3のエントリポイント) などが表示されるはず。 2.ls /home/USERNAME/www/cakephp_is_here を実行する。    →「1.」と同じ結果が表示される(シンボリックリンクなので) 3.ls -l /home/USERNAME/www/cakephp_is_here を実行する。    →/home/USERNAME/www/cakephp_is_here -> /home/USERNAME/project/PROJECTNAME/webroot が表示される。 4.上記を全て満たしていれば、 http://USERNAME.sakura.ne.jp/cakephp_is_here で画面が表示される。 もし、「2.」「3.」が上記のとおりでなければ、シンボリックリンクを作成する際のコマンドが誤っています。 一度、unlinkでシンボリックリンクを削除し、以下のコマンドを実行してください(スラッシュも含めて確認してください) ln -sf /home/USERNAME/project/PROJECTNAME/webroot /home/USERNAME/www/cakephp_is_here その後、再度上記の「2.」「3.」が正しく表示されることを確認できれば画面が表示されます。
massy7

2017/06/19 06:13 編集

USERNAMEとPROJECTNAME、cakephp_is_hereは全て同じ名前にしているので以下XXXとします 書いていただいたことを実行すると「ls /home/XXX/project/XXX/webroot」ではwebrootフォルダの中身が表示(index.phpやcss、jsなど)され、「ls /home/XXX/www/XXX」ではwebrootフォルダが表示されます。 書いていただいたシンボリックリンクの再作成をしてもこれは変わりませんでした。 つまり、「lrwxr-xr-x 1 XXX users 50 Jun 10 15:26 webroot -> /home/XXX/project/XXX/webroot」は変わりませんでした。
mosa

2017/06/19 07:38

さくらのレンタルサーバではないですが、ほぼ同じ環境でやってみましたが、こちらではうまくいってしまうので、これ以上はお役にたてそうもありません。 「Jun 10 15:26」←日付が古いのでシンボリックリンクが再作成できていないのかもしれません。 一応、こちらの環境での結果を記載しておきます。(実際にXXXでやってます。) $ ln -sf /home/XXX/project/XXX/webroot /home/XXX/www/XXX $ ls /home/XXX/project/XXX/webroot css img index.php js $ ls /home/XXX/www/XXX css img index.php js $ ls -l /home/XXX/www/XXX lrwxr-xr-x 1 XXX users 29 6月 19 16:34 /home/XXX/www/XXX -> /home/XXX/project/XXX/webroot
massy7

2017/06/19 09:44

時間のところはコピペしたため記載ミスです「Jun 19 15:17」と更新されています ありがとうございます。もう少し色々やってみます
guest

0

エラー画面を見る限り、webroot の部分がコントローラにマッピングされています。
webrootの部分を除き、http://MYDOMAIN.sakura.ne.jp/PROJECTNAME/ にアクセスしてみてください。
もしそれでもエラーが出る場合は、また異なるエラーだと思いますので、再度画面のキャプチャなどを提示してください。

投稿2017/06/18 13:01

mosa

総合スコア218

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問