I try to install Magento 2 and I have a problem with css and js loading (they are missing). There are a lot of topics about this problem and it seems that the last step of the solution is to run php bin/magento setup:static-content:deploy command (rebuild the static content).
Ok, but how? I have no access to the terminal at my host (actually I don't know too much about it, I just use Magento as an average user). Is there a way to run this command inside Magento? What are the steps to run it? The installation is in a sub directory not in site root.
There is no way to deploy static-content from within the frontend or admin of Magento 2.
At the least, your hosting company should be able to run this command for you.
Need SSH credentials & access to your server
Login to server using SSH via terminal, putty, etc.
Navigate to Magento 2 root install directory using CLI
Run this command:
_
php bin/magento setup:static-content:deploy
No, you don't have any other options for deploying content from the admin. You need to deploy static content from the Magento root directory only then you will be able to see CSS and js.
Open your Magento 2 root directory and run the below commands:
For Windows users-
php bin/magento setup:static-content:deploy
For linux users-
/opt/lampp/bin/php bin/magento setup:static-content:deploy
Another method is using ssh. For that, you need to login to Cpanel. Through command prompt login to the server using ssh credentials. Then navigate through Magento 2 root directory and run the same commands as given above.
Related
I am trying to install laravel with the use of cygwin, a command line tool for windows.
I use this line
composer create-project laravel/laravel=4.2.0 c/my_workspace/projectname --prefer-dist
which installs everything. But it does not end up in c:/my_workspace/projectname. Instead it ends up in cygwin64/c/my_workspace/projectname.
The next time I tried it it ended up in a different folder, also inside "cygwin64".
It doesn't matter what path I specify, the path will start in the cygwin64 folder for some reason. By the way, in cygwin there is a always a prefix for the paths called /cygdrive/. Is that what causes it to start from cygwin64?
I also tried instead to execute it from cmd by navigating to
cd c:/myworkspace
And then entering
composer create-project laravel/laravel=4.2.0 /projectname --prefer-dist
It says "Installling", and then "loading from cache" (?), then it says
failed to download laravel/laravel from dist: C:my_workspace/vendor/composer/5079c43b does not exist and could not be created
Then it tries to download from source. When cloning starts it fails:
Failed to clone git#github.com:laravel/laravel.git, git was not found
I managed to get it installed finally. I suppose there was something wrong with the way I wrote the filepath:
c/my_workspace/projectname
so it was created in the cygwin64 folder (for some reason). This time I navigated to the folder where I want the install:
cd c:/my_workspace/projectname
then install with:
composer create-project laravel/laravel=4.2.0 --prefer-dist
However, I got a mkdir() permission denied problem, which was solved by running cygwin as administrator.
Then I got another problem where you setup the laravel development server with
$ php artisan serve
It could not find the artisan file because it was located inside a "laravel" folder(!?), which I guess wasn't right, so I moved the laravel files back to my project folder and deleted the laravel folder. The laravel development server has started so I guess it works now.
I installed zend framework 2 using the skeleton. Basically, followed the steps mentioned in https://github.com/zendframework/ZendSkeletonApplication#using-composer-recommended
To Summarize, I followed below commands:
cd my/project/dir
git clone git://github.com/zendframework/ZendSkeletonApplication.git
cd ZendSkeletonApplication
php composer.phar self-update
php composer.phar install
After this I added Virtual Host has mentioned in the link above and added entry in /etc/hosts.
And now, when I access the link i.e zendemo.com instead of directing me to Welcome page, I see the index.php script. Any pointers what do I neeed to do?
OS: Ubuntu 13.10
Php version: PHP 5.5.3
Did you enable the Apache mod_rewrite module? Try running the a2enmod rewrite command from your command shell and then restart Apache.
I'm new to working in a WAMP environment, in this case I'm using Easyphp, and I can't find how to execute php commands (like a simple php -v), like I would do for example when connecting to a server with SSH.
I have Easyphp installed, apache and mysql servers are on, and I created a virtual host using the module in the same folder where I'm trying to execute the php command (using the cmd tool in windows).
Is there any other way to do this? Is there a "console" just for that? Any help would be appreciated!
EDIT
OK maybe I should give a specific example of what I'm trying to do in case I didn't explain myself very well. I'm trying to follow this guide to getting started with Zend Framework, and in the very first step after downloading the files, it asks to "type" 2 commands:
php composer.phar self-update
php composer.phar install
Where do I exactly "type" those commands?
In windows you need to set up your path environment variable (if it hasn't already been done by the installer) so that it points to the correct location for the PHP executables. Refer to the documentation for EasyPHP to see if/how you need to do this.
Then, open a dos window, and cd into the directory for your project. Then you should be able to run the commands as shown.
I'd like to install a PHP extension on a bluehost shared site; specifically the MongoDB driver. Since pecl is unable to write to the primary server directory that has all the installed extensions, I'd like to install the mongo.so file to a directory I specify under my home. The closest article I found on the web was:
http://www.site5.com/blog/programming/php/how-to-setup-your-own-php-pear-environment/20090624/
However, after following the steps when I use the "pecl install mongo" command, it still keeps trying to install to bluehost's central directory on the server.
According to my web host's technical support team, utilising the pecl installer attempts to install the extension server-wide rather than under your account only. My web host doesn't allow server-wide installations in their shared environment for security reasons and because they want to keep their fleet universally the same across the board. I suspect your host is the same.
However, they did suggest I download, configure and install the pecl package (pecl_http) in my account only (rather than server-wide) via the following manual process:
$ cd ~/
$ wget http://pecl.php.net/get/pecl_http
$ tar -zxvf pecl_http.tar.gz
$ cd pecl_http
$ phpize
$ ./configure --prefix=~/bin
$ make
$ make test
$ make install
A successful install will have created extname.so and put it into the
PHP extensions directory. You'll need to edit php.ini (in my case,
this was a copy of the standard php.ini file that I placed in the same
folder as the script using the extension) and add an
extension=extname.so line (in my case, extension=http.so) before you can use the extension.
http://www.php.net/manual/en/install.pecl.phpize.php
Note that the tilde character (~) in the above code refers to the home directory of the current user (e.g. /home/username on my host's server).
Issues you may run into
When using the tar command, a "cannot open: not a directory" error
appeared as pecl_http had been downloaded without a file extension.
This was easily corrected:
mv pecl_http pecl_http.tar.gz
When using the make install command, a "cp: cannot create regular
file...: Permission denied" errror appeared. I resolved this issue
by changing the ext_dir for pecl...
pecl config-set ext_dir /home/username/bin/extensions
...and re-running make install. I also had to copy the http.so extension to /home/username/bin/extensions and then reference that location in my php.ini file:
extension_dir = "/home/username/bin/extensions"
this sounds like you don't have root access to your server. if your need to compile anything you must be have root access permission to server, or maybe you must be one of the sudoers.
For test purposes I have gearman running on localhost. So I run the gearman worker.php file from php command line. When I test this in normal apache mode, mongoDB works just fine, but when it runs from the gearman worker file I get the error "fatal error: class 'Mongo' not found". Now the Mongo class comes from pecl and the mongo.so extension in php.ini. SO yeah, trying to figure out why a php file run from CLI is different. Does it use a separate php.ini file?
You can check which .ini files are being loaded by the CLI version by doing php --ini. If your PHP was provided by a distro, it's very possible for it to have two seperate .ini sets, one for web-based and one for CLI. You can get the equivalent info from phpinfo() when it's running online as well.
To force it to load a particular .ini, you can use php -c /path/to/file.ini.
Well a simple find / -name php.ini answered that question for me. So yes, there is a separate php.ini file. Where I needed to add the line extension=mongo.so.
It sounds like either you're loading different ini files or you've got multiple instances of php installed on your machine and apache is using a different one. Make the script v.php:
<?php phpinfo();
then try running it from CLI and then viewing it via localhost. EG:
php v.php
and
http://localhost/v.php