#php #apache #laravel-5 #centos7
#php #apache #laravel-5 #centos7
Вопрос:
Все проекты laravel, над которыми я работал, были установлены / настроены другими людьми. Давным-давно мне удалось установить проект Laravel на компьютер с Windows с помощью WAMP, и, насколько я помню, это было проще. Недавно я получил доступ к чистой капле из digitalocean.com с установленным Centos 7. Я думаю, что droplet — это что-то вроде VPS. У вас есть IP-адрес и доступ по SSH После некоторой головной боли мне удалось успешно установить laravel с помощью composer. Я также установил mysql и apache (httpd) Теперь у меня есть
/var/www/laravel
папка с установкой последней версии Laravel (5.3)
Я зашел в /var/www/ и вызвал
создание композитора-проект laravel / laravel mypro
Теперь у меня есть оболочка приложения laravel для нового приложения по адресу
/var/www/mypro
Я хотел бы получить к нему доступ из браузера, чтобы я мог начать работать над ним, но я не знаю, что мне нужно делать. Есть много руководств о том, как это сделать, но они меня очень смущают.
Что я должен сделать дальше, чтобы иметь возможность видеть результаты того, над чем я работаю? Если в браузере я получаю доступ к droplet по IP, например
Я получаю
Не найден запрошенный URL / не найден на этом сервере.
То же самое, если я добавлю к URL-адресу имя моего приложения, например
Я полагаю, что я должен настроить httpd? Или, может быть, переместить папку проекта куда-нибудь еще?
Я попытался переместить папку моего проекта в папку /var/ www / html, поэтому
/var/www/html/mypro
и теперь, когда я пытаюсь получить доступ к URL-адресу, я получаю пустую страницу (просмотр источника страницы браузера также возвращает пустую страницу) Я даже пытался
поскольку существует server.php файл в корне папки моего проекта … тот же результат
Я даже добавил conf в папку /etc/httpd/conf.d/ с именем mypro.conf, куда я добавил эти строки:
<VirtualHost *:80>
ServerName mypro
DocumentRoot "/var/www/html/mypro/public"
<Directory /var/www/html/mypro/public>
AllowOverride all
</Directory>
</VirtualHost>
Ничего нового не происходит
Я делал «перезапуск службы httpd» каждый раз, когда что-то менял.
Я даже пытался
php artisan serve —хост xxx.xxx.xxx.xxx —порт 8000
и попробовал url http://xxx.xxx.xxx.xxx:8000
Теперь я получаю страницу «Не удается подключиться» из браузера, поэтому я остановил «подачу»
Что мне нужно сделать, чтобы наконец начать работать?
Ответ №1:
Ниже приведен способ, как я это делаю в Ubutnu 16.04 (это можно сделать с некоторыми изменениями в Centos).
Обновите репозиторий пакетов.
sudo apt update
Обновите пакеты.
sudo apt dist-upgrade
Установите PHP
apt install php
Установите apache2
apt install apache2
Установка плагинов PHP
apt install php-mbstring php-pdo php-tokenizer php-xml php-mcrypt php-gd libapache2-mod-php php-curl php-mysql
Включить mcrypt
phpenmod mcrypt
a2enmod rewrite
Перезапустите сервер Apache
service apache2 restart
Установить Composer
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Установите Git
apt install git
Установите mysql-сервер
apt install mysql-server
Установите Phpmyadmin (необязательно)
apt install phpmyadmin
Установите zip и распакуйте
apt install zip unzip
Теперь создайте конфигурацию виртуального хоста apache для вашего веб-сайта.
cd /etc/apache2/sites-available
touch pqr.xyz.com.conf
Основным содержанием является pqr.xyz.com.conf
#content of pqr.xyz.com.conf
<VirtualHost *:80>
ServerName pqr.xyz.com
ServerAdmin webmaster@xyz.com
DocumentRoot /var/www/html/pqr.xyz.com/public
<Directory /var/www/html/pqr.xyz.com>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Теперь goto /var/www/html
cd /var/www/html/
Создайте каталог с именем вашего веб-сайта
mkdir pqr.xyz.com
Теперь добавьте пользователя, потому что при создании проекта laravel не рекомендуется работать с composer от имени root.
adduser admin --ingroup admin
Теперь сделайте администратора владельцем этого каталога
chown -R admin pqr.xyz.com
Теперь войдите в систему как администратор
перейдите в /var/www/html
cd /var/www/html
Установите Laravel с помощью composer
composer create-project laravel/laravel pqr.xyz.com
cd /var/www/html/pqr.xyz.com
Теперь ваше хранилище и каталог начальной загрузки должны иметь разрешение на запись для сервера apache 2, поэтому сделайте apache владельцем этих двух каталогов.
chown -R www-data storage
chown -R www-data bootstrap
Теперь войдите в систему как root
Активируйте pqr.xyz.com.conf
a2dissite 000-default.conf
service apache2 reload
a2ensite shopperstock.eveningx.com.conf
service apache2 reload
service apache2 restart
Возможно, это не лучший способ работы с любым проектом larave, поэтому не стесняйтесь комментировать или предлагать правки.
Комментарии:
1. Поэтому, если вы прочитаете вопрос, вы поймете, что я уже установил mysql, php, apache, unzip, git и laravel. Я тоже создал этот проект. В centos у меня есть служба httpd и пользователь apache, но в остальном я сделал все, что вы предлагаете. Мой файл httpd conf (mypro.conf) находится в другом месте (как указано в вопросе), но содержит все соответствующие части из того, что вы предлагаете. Он по-прежнему не работает. Есть какие-нибудь предложения о том, как действовать дальше? (Для CENTOS, пожалуйста)
2. Это может быть что-то о htaccess … или других файлах конфигурации … ?
3. Похоже, что apache не может найти ваш общедоступный каталог. Итак, вы активировали свой конфигурационный файл apache, как я сделал в последнем разделе моего ответа? Я думаю, что проблема связана с вашим конфигурационным файлом виртуального хоста apache . Вы должны проверить файлы журналов apache . В ubuntu файлы журнала apache находятся по адресу /var/log/apache2/error.log .
4. Следуя вашей рекомендации, я просмотрел файлы журнала apache и обнаружил свою проблему. Итак, моя конфигурация в конце концов хороша, но мне пришлось выполнить «php artisan config: cache» и «php artisan cache: очистить». Спасибо вам за то, что направили меня в правильном направлении
5. Приветствую @user1137313, я рад, что это помогло вам.