2015-09-02 4 views
1

Я ищу, чтобы создать один экземпляр laravel и запустить несколько приложений. Каждое приложение будет иметь собственное пространство имен с настраиваемыми маршрутами, конфигурацией, активами, представлениями и собственным свойкомпозитором.json. Все приложения будут использовать один и тот же файл поставщика. Это то, что я сделал до сих пор. Созданы несколько пространств имен, и это, как каждая структура каталогов приложений выглядят какLaravel 5.X один экземпляр несколько приложений

|--app 
    |--App1 
     |-- app 
     |-- Bootstrap 
     |-- config 
     |-- database 
     |-- public 
     |-- resources 
     |-- storage 
     |-- .. 
     |-- composer.json 
    |-- App2 
     |--.. 
|--vendor 

для разрешения зависимостей поставщика я изменить местоположение папки поставщика в composer.json любит это

"config": { 
    "preferred-install": "dist", 
    "vendor-dir":"../vendor" 
} 

Я также обновил поставщик path в autoload.php, чтобы указать на правильное местоположение.

env где я создаю этот проект, также запускаются другие проекты laravel. Итак, все ингредиенты есть (htaccess, vhosts, ....).

Когда я запустил автозагрузку композитора, все загрузки у меня нет ошибок. Когда я перехожу к своему маршруту, я получаю пустую страницу. Отладка приложения установлена ​​в значение true.

Является ли мой подход к настройке laravel таким образом правильно? если да, то где я ошибся или что я делаю неправильно.
Большое спасибо.

После того, как я получил небольшой намек на приведенный ниже комментарий, я смог создать созданные работы. 1 - Убедитесь, что для разрешения на хранение установлено значение 775. 2 - Убедитесь, что вы создали файл .env. В моем случае пришлось его создать, перешел.

мои

виртуальных домены
<VirtualHost *:80> 
    ServerName app1.server.local 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/tenants/app1/public 
    <Directory /var/www/tenants/app1/public/> 
     Options Indexes FollowSymLinks MultiViews 
     AllowOverride All 
     Order allow,deny 
     allow from all 
    </Directory> 
    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 


<VirtualHost *:80> 
    ServerName app2.server.local 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/tenants/app2/public 
    <Directory /var/www/tenants/app2/public/> 
     Options Indexes FollowSymLinks MultiViews 
     AllowOverride All 
     Order allow,deny 
     allow from all 
    </Directory> 
    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

Надеется, что это поможет, кто желает создать один экземпляр Laravel и запускать несколько приложений.

+1

Является ли ваша папка для хранения в папке «app/storage» доступной для записи? Получаете ли вы какие-либо ошибки на вкладке вашей сети? (F12-> Сеть, FireFox или Chrome) –

+0

@TimLewis Man, я не знаю, как я это пропустил. Я изменил права на запись на запись 775, и мне тоже не хватило файла .env, пришлось его создать. Отлично работает. Thanks – mdamia

+0

Нет проблем. Я пропустил этот шаг слишком много раз сам, но я рад, что вы его работали. Ура! –

ответ

0

Комментарий Тима указал, что мне не хватает. Я изменил разрешение папки хранения на 775. Я добавил файл .env. и Booya, у меня есть несколько приложений с одним экземпляром laravel. Это работает как шарм.

+0

Пока материал не нуждается в обновлении. Композитор не предназначен для управления центральными зависимостями, он предназначен для того, чтобы делать наоборот, потому что центральные установки всегда вызывают боль из-за невозможности индивидуально обновлять зависимости. – Sven

+0

@Sven Я немного смущен. Я добавил и обновил зависимости для каждого проекта отдельно без сбоев. [Композитор] (http://www.slideshare.net/jasongr/composer-23263197). В слайд-шоу указано, что композитор управляет центральными зависимостями. – mdamia

+0

Пример: Последнее обновление App1 до Laravel 5.1.2 - файл блокировки гарантирует, что это будет эта версия. Теперь вы видите важное исправление ошибки и запускаете обновление в App2. Это приведет к этому приложению в Laravel 5.1.6, и ваша общая папка поставщика также повлияет на App1. Затем вы развертываете на производственный сервер: первый App2, затем App1, и всегда выполняйте установку композитора для каждого приложения в этом порядке. Вы обнаружили важную ошибку fIx? № – Sven

Смежные вопросы