Лінивий долбоеб я! Лінивий дол-бо-еб! Замість того, щоб все кодіть на локалке, а вже потім реліз на публічний сервер, я вів розробку прямо на ньому. Це зайві кліки, зайві напряги для відвідувачів, які відразу бачать все косяки, та й взагалі так робити не потрібно, поганий тон.
Але довгий час і такого варіанту вистачало. А все тому, що лінь було налаштувати оточення на моєму Macbook. Сьогодні субота. Зварив каву. Вирішив, нарешті, розібратися з цією проблемою. Інструкція буде написана для самого себе. Якщо раптом в майбутньому доведеться проробляти це ще раз.
Віртуальний сервер Apache вже встановлено по дефолту на маках. Досить його запустити командою:
Щоб зробити це з під рута для початку потрібно залогінитися:
Команди зупинити сервер або перезапустити його, відповідно будуть такі:
apachectl stop
apachectl restart
Друге завдання - прикрутити PHP. Вона теж вирішується просто, бо PHP теж уже встановлений. Його потрібно тільки активувати для віртуальної машини. Для цього потрібно відредагувати такий файл:
Зберігаємо (CTRL + X). Перезавантажуємо апач:
Перевіряємо, чи працює PHP. Для цього закинемо в DocumentRoot файлик:
/ Library / WebServer / Documents - папка локалхоста для Mac. Надалі можна створити віртуальні хости.
У файлі пропишемо всього один рядок:
Виявився встановлений - PHP Version 5.5.27. І всі популярні розширення вже в ньому присутні, нічого додатково швидше за все ставити не доведеться.
Подумав, що потрібно оновити до останньої версії 5.6. Це можна зробити такою командою:
Заходимо в настройки, тиснемо нам іконку MySQL і запускаємо сервер бази даних. Можна поставити галочку, щоб сервер запускався відразу після завантаження системи.
Запустити сервер можна так само і через термінал:
Щоб кожен раз не набирати повний шлях до Директорії м'язи, створимо алиас.
Перевірити можна так:
Але наскільки я зрозумів, це діє тільки до кінця сесії. Щоб кожен раз не виконувати цю команду, можна прописати баш-файл. Переходимо в домашню дірректорію користувача.
І прописуємо там:
Зберігаємо. Перезаходити в термінал. Перевіряємо такою командою:
Тепер повинна працювати така команда, наприклад:
Вона виводить вітання, показує версію м'язи і заходить в нього. Виходимо командою quit. Тепер запустимо команду для початкового налаштування м'язи, завдання пароля і деяких інших маніпуляцій:
Встановлюємо пароль для root користувача. Його непогано б записати кудись. Він стане в нагоді нам для створення нових баз. На інші питання відповідаємо «так». Втечуть тестові таблиці, забереться рутовий віддалений доступ, віддалиться доступ анонімуса.
Але цього не достатньо. Ще потрібно кой-чаво прописати, щоб все запрацювало. Потрібно прописати лінк на сокет, тому що Мускул зберігає його / tmp. а OS X шукає його в / var / mysql. Це не є гуд, тому робимо так:
mkdir / var / mysql
ln -s /tmp/mysql.sock /var/mysql/mysql.sock
Перевірити можна так:
cd / var / mysql /
ls -al
3. phpMyAdmin
Переносимо файли в домашню дірректорію сервера:
cd / Library / WebServer / Documents / phpmyadmin
mv config.sample.inc.php config.inc.php
Ну, і раз пішла така п'янка, то ще створимо базу і віртуальний хост.
4. Створюємо базу
Заходимо в м'язи під рутом (пароль не забув записати?)
CREATE DATABASE mybase;
Створюємо користувача для цієї БД
CREATE USER user @ localhost IDENTIFIED BY 'pass';
GRANT ALL PRIVILEGES ON mybase. * TO user @ localhost;
5. Створюємо віртуальний хост
Ось цей рядок:
Створимо віртуальний хост:
У цьому прикладі два віртуальних хоста. Один стандартний localhost. Інший example.local. файли якого я буду розміщувати в своїй папці WWW / example.local
І не забуваємо відредагувати hosts файл:
Швидше за все ви отримаєте відповідь 403 Forbidden.
Доведеться виконати ще деякі маніпуляції. Не може ж бути все так просто!
Швидше за все там буде лежати файл-конфиг вашого користувача. Створимо або відредагуємо його:
Не забути змінити дірректорію на свою папку. Перевіряємо пермішени, повинні бути такі:
Якщо немає, то робимо так:
sudo chmod 644 username.conf
І ще ось ця рядок теж:
Зберігаємо, виходимо. Редагуємо наступний файл:
6. Висновок
Пиздец. Чот все виявилося децл складніше, ніж я думав. Пол дня на це угробив. Ну да похуй. Начебто налаштував. Припускаю, що десь хтось вже написав скріптец, який всі ці настройки виробляє саме для Mac OS. Десь хтось вже написав такий ...